c# - 如何使用 Xpath 获取所有节点属性和值?

标签 c# .net xml xpath

我有以下 XML:

<xmlRequest>
    <stats>
        <player_stats aid="254664">
            <stat name="nickname">lethallynx</stat>
            <stat name="acc_games_played">671</stat>
            <stat name="acc_wins">397</stat>
            <stat name="acc_losses">274</stat>
            <stat name="acc_concedes">179</stat>
        </player_stats>
    </stats>
</xmlRequest>

我正在尝试获取统计信息 "nickname" 的值。

我尝试使用:

XmlNodeList nodes = doc.SelectNodes("//@name");

要获取所有具有属性的节点,但我似乎无法访问它们的值。

谁能指出我正确的方向?

最佳答案

如果你只是想获取stat“nickname”的值,那么你可以这样写:

XmlNode node = doc.SelectSingleNode("//stat[@name='nickname']/text()");
Console.WriteLine(node.Value); // "lethallynx"

解释:

  • 部分//stat返回所有 <stat> 的列表文档中的元素。
  • 部分[@name='nickname']name 上过滤此列表属性,所以在这种情况下,您最终只会得到一个元素。
  • 部分/text()选择此 <stat> 内的文本节点元素。

关于c# - 如何使用 Xpath 获取所有节点属性和值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6012076/

相关文章:

c# - 是否可以反编译整个 .NET 应用程序?

c# - 如何在 Visual C++ 中将托管变量用作全局变量?

c# - 使用 Entity Framework C# 限制与数据库的连接

.net - 如何在 .net 4 中找到并行性的热点?

c++ - 使用 .NET 4.5 和混合程序集时出现未知异常

xml - 在 XML/XSL 文件中包含 XML 文件

c# - 分割数组的一个元素

c# - 在短和字节之间转换的好方法?

java - 单击按钮时更改 xml Activity

任何顺序的 XML 元素,有些是必需的,有些不是