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

C# 如何使用Xpath获取所有节点属性和值?,c#,.net,xml,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_wi

我有以下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>
获取所有具有属性的节点,但我似乎无法访问它们的值


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

您的命令正在选择name的所有属性。尝试此操作以获取具有name属性的所有元素:

doc.SelectNodes("//*[@name]");

如果您只想获得stat“昵称”的值,那么您可以这样写:

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

  • 部分
    //stat
    返回文档中所有
    元素的列表
  • 部分
    [@name='昵称']
    name
    属性上过滤此列表,因此在本例中,您只需要一个元素
  • 部分
    /text()
    选择此
    元素内的textnode

这会获取值,但现在我找不到该属性等于什么。我要做的是获取“昵称”和其他字段的值。最好是只进行多个Xpath查询,还是对单个查询返回的节点进行迭代?干杯,这正是我所需要的!
XmlNode node = doc.SelectSingleNode("//stat[@name='nickname']/text()");
Console.WriteLine(node.Value); // "lethallynx"