1

我有一个这种结构的 XML 格式(现实世界的例子非常冗长和复杂,但这应该说明它):

<document>    <post>
      <author>Bill Smith</author>
      <subject>Test Article</subject>
      <dates>
          <uploaded>some date</uploaded>
          <published>some date</published>
      </dates>
    </post>
    <post>
      <author>Bill Smith</author>
      <subject>Test Article</subject>
      <dates>
          <uploaded>some date</uploaded>
          <published>some date</published>
      </dates>
    </post>  </document>

我写了一个简单的查询来提取每个帖子。我可以很好地了解作者和主题,但我不知道如何深入研究日期部分以提取已发布的位。

谢谢

4

1 回答 1

3

您可以使用以下 LINQ 获取第一个“已发布”元素。

    XDocument document = XDocument.Load(@"D:\XMLFile1.xml", LoadOptions.None);
    XElement element = document
    .Descendants("document")
            .Descendants("post")
    .Descendants("dates")
    .Descendants("published")
    .First();
string publishedDate = element.Value;

您可以将任何表达式作为“后代”方法的参数。如果您将 xml 作为字符串,则可以使用以下内容将其读入XDocument

XDocument.Parse();

请记住检查空值!:-)

于 2013-02-28T03:39:00.690 回答