[c#]获取子节点的 xml 属性值

标签: Asp.net XML C#
发布时间: 2017/2/25 3:32:16
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.
<test>
    <acc id="1"> acc1 </acc>
    <acc id="2"> acc2 </acc>
    <acc id="3"> acc3 </acc>
    <acc id="4"> acc4 </acc>
</test>

例如,如果我想要的值的每个 <acc> 元素︰

var iAccs = xdoc.Descendants("test").Elements("acc").Select(p => p.Value);
List<string> myList = new List<string>();
foreach(string p in iAccs)
{
    myList.Add(p);
}

但如何减去所有的属性"id"值的每个 <acc> 元素吗?

解决方法 1:

你可以很容易这使用 LINQ 到 XML:-

XDocument xdoc = XDocument.Load(@"You XML file path");
List<string> result = xdoc.Descendants("acc")
                          .Select(x => (string)x.Attribute("id")).ToList();

或者如果你那么喜欢查询语法:-

List<int> result2 = (from x in xdoc.Descendants("acc")
                     select (int)x.Attribute("id")).ToList();
赞助商