使用LINQ to XML解析XML

时间:2011-07-28 23:51:10

标签: c# .net xml linq

我有以下XML节点:

<reportDataRow>
    <columnData colNum="1">
        <data>FirstName</data>
    </columnData>
    <columnData colNum="2">
        <data>LastName</data>
    </columnData>
</reportDataRow>

我想根据data节点中colNum属性的值从columnData节点检索值。

如何使用LINQ实现这一目标?

2 个答案:

答案 0 :(得分:3)

再次假设reportDataRow是一个XElement,value是要与colNum属性匹配的变量;

foreach (var selected in reportDataRow.Elements("columnData").Where(a =>a.Attribute("colNum").Value == value))
        {
            yield return selected.Element("data").Value;
        }

用法将根据您的需要而改变

答案 1 :(得分:2)

最简单的方法是使用XPathSelectElement。假设reportDataRow是表示根元素的XElement,value是要与colNum属性匹配的变量:

reportDataRow.XPathSelectElement(".//data[parent::columnData/@colNum = '" + value + "']");