使用xDocument解析嵌套XML

时间:2013-02-28 02:55:01

标签: c# linq-to-xml

我有这种结构的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>

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

由于

1 个答案:

答案 0 :(得分: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;

您可以将任何表达式作为参数提供给'Descendants'方法。 如果您将xml作为字符串,则可以使用以下内容将其读入XDocument

XDocument.Parse();

请记得检查空值!! : - )