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

时间:2011-05-15 23:55:36

标签: 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>

我正在尝试获取stat "nickname"的值。

我尝试使用:

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

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

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:2)

如果您只想获取统计“昵称”的值,那么您可以写下:

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

说明:

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

答案 1 :(得分:0)

您的命令是选择名称的所有属性。尝试使用name属性获取所有元素:

doc.SelectNodes("//*[@name]");
相关问题