Используя Html Agility Pack, как выбрать узел с пространством имен - PullRequest
0 голосов
/ 31 мая 2019

У меня есть html

<cr:checkboxes name="name1"> 
  <cr:checkbox label="Checkbox 1" /> 
  <cr:checkbox label="Checkbox 2" /> 
  <cr:checkbox label="Checkbox 3" /> 
</cr:checkboxes>

Я использую html agility для загрузки html

 var document = new HtmlDocument();
 document.LoadHtml(htmlString);

 //select all nodes that starts with `cr:checkboxes`
document.DocumentNode.SelectNodes("//cr:checkboxes");

при выборе я получаю исключение

System.Xml.XPath.XPathException: 'Требуется менеджер пространства имен или XsltContext.Этот запрос имеет префикс, переменную или пользовательскую функцию. '

Как правило, в любом другом XML-документе я бы решил эту проблему, используя XmlDocument и добавив пространство имен с помощью менеджера пространства имен

Как выбрать все узлы с именем cr:checkboxes

1 Ответ

0 голосов
/ 07 июня 2019

Это решит вашу проблему.

var nodes = doc.DocumentNode.SelectNodes("//*[name()='cr:checkboxes']");

Я не смог найти другой способ поддержки XmlNameSpaceManager с HtmlAgilityPack.

...