获取子节点xml属性值

时间:2017-01-13 13:23:48

标签: c# asp.net xml

<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);
}

但是如何减去所有属性&#34; id&#34;每个<acc>元素的值?

1 个答案:

答案 0 :(得分:3)

您可以使用LINQ-to-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();