Linq to XML,其中值为 null

发布于 2024-08-03 21:05:18 字数 914 浏览 2 评论 0原文

我的代码有一些问题,

public IQueryable<PageItems> GetPageById(Guid Id)
{
    var xml = Utility.LoadXmlFile("Pages/" + Id);

    var q = (from f in xml.Descendants("Page")
             where (Guid)f.Element("id") == Id
             select new PageItems
             {
                 Title = f.Element("Title").Value,
                 Content = f.Element("Content").Value,
                 PublishDate = f.Element("PublishDate").Value,
             }).AsQueryable();


    return q;
}

我收到此错误:

Value cannot be null.
Parameter name: element 
Line 63: where (Guid)f.Element("id") == Id

xml 文件:

<Page id="235487c9-f706-4550-831e-cc504e99d3c5">
  <Title>Test</Title>
  <Content>Test</Content>
  <PublishDate>Test</PublishDate>
  <Url>about/contact</Url>
</Page>

I have some problem with my code

public IQueryable<PageItems> GetPageById(Guid Id)
{
    var xml = Utility.LoadXmlFile("Pages/" + Id);

    var q = (from f in xml.Descendants("Page")
             where (Guid)f.Element("id") == Id
             select new PageItems
             {
                 Title = f.Element("Title").Value,
                 Content = f.Element("Content").Value,
                 PublishDate = f.Element("PublishDate").Value,
             }).AsQueryable();


    return q;
}

I get this error:

Value cannot be null.
Parameter name: element 
Line 63: where (Guid)f.Element("id") == Id

The xml file:

<Page id="235487c9-f706-4550-831e-cc504e99d3c5">
  <Title>Test</Title>
  <Content>Test</Content>
  <PublishDate>Test</PublishDate>
  <Url>about/contact</Url>
</Page>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一城柳絮吹成雪 2024-08-10 21:05:18

您已要求提供 id 元素,但您需要属性

var q = (from f in xml.Descendants("Page")
         where (Guid)f.Attribute("id") == Id
         select new PageItems
         {
             Title = f.Element("Title").Value,
             Content = f.Element("Content").Value,
             PublishDate = f.Element("PublishDate").Value,
         }).AsQueryable();

将其作为 IQueryable 返回的任何原因,由方式?

You've asked for the id element, but you want the attribute:

var q = (from f in xml.Descendants("Page")
         where (Guid)f.Attribute("id") == Id
         select new PageItems
         {
             Title = f.Element("Title").Value,
             Content = f.Element("Content").Value,
             PublishDate = f.Element("PublishDate").Value,
         }).AsQueryable();

Any reason for returning it as an IQueryable<T>, by the way?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文