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()=我不知道为什么昨天它起作用了!!!