使用LINQ解析XML

本文关键字:XML 解析 LINQ 使用 | 更新日期: 2023-09-27 18:03:48

我有以下XML节点:

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

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

我该如何使用LINQ来完成呢?

使用LINQ解析XML

再次假设reportDataRow是一个XElement, value是一个变量,您希望用它来匹配colNum属性;

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

的用法会根据你的需要而改变

最简单的方法是使用XPathSelectElement。假设reportDataRow是一个表示根元素的XElement,而value是一个变量,您希望用它来匹配colNum属性:

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