Как я могу получить все атрибуты узла и значения, используя Xpath? - PullRequest
2 голосов
/ 16 мая 2011

У меня есть следующий 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");

Чтобы получить все узлы с атрибутами, но я не могу получить доступ к их значениям.

Может кто-нибудь указать мне правильное направление?

Ответы [ 2 ]

2 голосов
/ 16 мая 2011

Если вы просто хотите получить значение статистики "псевдоним", то вы можете написать это:

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

Объяснение:

  • Возвращается деталь //statсписок всех элементов <stat> в документе.
  • Деталь [@name='nickname'] фильтрует этот список по атрибуту name, поэтому в этом случае вы получите только один элемент.
  • Деталь /text() выбирает текстовый узел внутри этого элемента <stat>.
0 голосов
/ 16 мая 2011

Ваша команда выбирает все атрибуты имени.Попробуйте это, чтобы получить все элементы с атрибутом имени:

doc.SelectNodes("//*[@name]");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...