Запрос XPath для атрибута, содержащего косую черту (/) - PullRequest
6 голосов
/ 05 мая 2011

Я пытаюсь сделать SelectSingleNode на XMLDocument, используя выражение XPath.Однако, когда значение атрибута, которое я ищу, содержит несколько косых черт (/), он возвращает ноль.

Я не могу найти в сети никаких ресурсов для экранирования косой черты.Кто-нибудь знает способ обойти это?Или у меня неправильный синтаксис для соответствия значению атрибута?

Пример XML

<?xml version="1.0"?>
  <Root>
    <Page Path="/brand" />
    <Page Path="/brand/armada" />
  </Root>

Это выражение XPath возвращает правильный узел (например, первый в приведенном выше примере)

XmlNode N = xmlDoc.SelectSingleNode("Root/Page[@Path='/brand']");

Это выражение XPath возвращает нуль

XmlNode N = xmlDoc.SelectSingleNode("Root/Page[@Path='/brand/armada']");

Я нахожусь в среде C #, .net 3.5.

РЕДАКТИРОВАТЬ: Спасибо за ответы.Я решил проблему с помощью двойной косой черты в выражении выбора.

XmlNode N = xmlDoc.SelectSingleNode("Root//Page[@Path='/brand/armada']");

1 Ответ

0 голосов
/ 23 марта 2016

Спасибо за ответы. Я решил проблему, используя двойную косую черту в выражении выбора.

XmlNode N = xmlDoc.SelectSingleNode("Root//Page[@Path='/brand/armada']");
...