C# System.Xml.XPath.XPathException:';需要命名空间管理器或XsltContext。此查询具有前缀、变量或用户定义的函数;
昨天我发布了这个问题:C# System.Xml.XPath.XPathException:';需要命名空间管理器或XsltContext。此查询具有前缀、变量或用户定义的函数;,c#,xml,html-agility-pack,C#,Xml,Html Agility Pack,昨天我发布了这个问题: https://stackoverflow.com/questions/56182368/html-agility-pack-select-node-after-particular-paragraph 我使用解决方案解决了这个问题:htmlSnippet.DocumentNode.SelectNodes('//p[text()=“targetWord”]/following sibling::ul[1]//li') 今天,在另一个具有相同配置和HTML agility
https://stackoverflow.com/questions/56182368/html-agility-pack-select-node-after-particular-paragraph
我使用解决方案解决了这个问题:htmlSnippet.DocumentNode.SelectNodes('//p[text()=“targetWord”]/following sibling::ul[1]//li')
今天,在另一个具有相同配置和HTML agility pack版本的项目中,我获得了标题中的错误消息。我能做些什么来解决它
System.Xml.XPath.XPathException:'需要命名空间管理器或XsltContext。此查询具有前缀、变量或用户定义的函数。
'
引发异常的代码:
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(htmlText);
//var ulCollection = htmlDoc.DocumentNode.SelectNodes("//ul");
var tasksNodesCollection = htmlDoc.DocumentNode.SelectNodes("//p[TextValue()=\"Paragraph:\"]/following-sibling::ul[1]//li");
您要查找的文本中有一个冒号
htmlDoc.DocumentNode.SelectNodes("//p[TextValue()=\"Paragraph:\"]
解析器认为它是一个XML名称空间限定符。使用转义形式“用于冒号。已解决!!!我使用了text()=而不是textvalue()=我不知道昨天它为什么有效!!!可能会在这里找到解决方案”“这是如何应用于html agility pack的?您能提供错误出现的代码吗?您需要发布响应。看起来响应是XML,您无法使用响应xmlvar htmlDoc=new HtmlDocument()创建文档;htmlDoc.LoadHtml(htmlText)//var ulCollection=htmlDoc.DocumentNode.SelectNodes(“//ul”);var tasksNodesCollection=htmlDoc.DocumentNode.SelectNodes(“//p[TextValue()=\”段落:\”]/以下同级::ul[1]//li”);删除冒号//p/以下同级::ul[1]//li表达式也有问题。问题是当我添加textvalue时也没有分号。也许我漏掉了c#字符串中的双引号?解决了!!!我用了text()=而不是textvalue()=我不知道为什么昨天它起作用了!!!