阅读单个元素的所有后代

时间:2014-09-12 11:31:50

标签: c# xml linq-to-xml xmldocument

我有以下XML文件:

<data>
    <set1>
        <entry>Entry #1</entry>
        <entry>Entry #2</entry>
    </set1>
</data>

我试图读取SET元素的所有后代。我不确定如果我混淆元素和后代这样的术语,所以我暂时不再使用它们了。)

以下是我使用的C#代码:

List<String> list = new List<String>();
XDocument xml = XDocument.Load("file.xml");

var desc = xml.Descendants("set1");
foreach (var entry in desc) {
    list.add(entry.Value);
    Console.Write("element: " + entry.Value);
}

但是,不是两行控制台输出“Entry#1”和“Entry#2”,我只得到一个“Entry#1Entry#2”。谢谢你的帮助!

2 个答案:

答案 0 :(得分:2)

喜欢的东西:

 var desc = xd.Descendants("set1").Elements("entry");

答案 1 :(得分:1)

更改为

var desc = xml.Descendants("set1").Descendants();

Console.WriteLine

我刚试过它并且有效。

错误是Descendants("set1")没有为您提供set1的后代。它为您提供了名为 set1的xml根后代。

对于Console.WriteLine - 它在写入内容的末尾添加了换行符。