使用HTML Agility Pack如何选择具有名称空间的节点

时间:2019-05-31 18:53:41

标签: html-agility-pack

我有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 :(得分:0)

这将解决您的问题。

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

我找不到其他方法来用HtmlAgilityPack支持XmlNameSpaceManager。