XPATH查询中的html 4.0实体

XPATH查询中的html 4.0实体,xpath,Xpath,我不知道xpath表达式的确切原因: //h3[text()='Foo &rsaquo; Bar'] 不匹配: <h3>Foo &rsaquo; Bar</h3> Foo&rsaquo;酒吧 这看起来对吗?如何查询该标记?来自: XPath操作XML文档的抽象逻辑结构,而不是其表面语法 …因此,除非您在解析该实体的语言(可能是XSLT和包含该实体的DTD(如果可能的话,我远不是XSLT专家))中使用查询(而不是“查询”),否则我不会期望它工作 使用由

我不知道xpath表达式的确切原因:

//h3[text()='Foo &rsaquo; Bar']
不匹配:

<h3>Foo &rsaquo; Bar</h3>
Foo&rsaquo;酒吧
这看起来对吗?如何查询该标记?

来自:

XPath操作XML文档的抽象逻辑结构,而不是其表面语法

…因此,除非您在解析该实体的语言(可能是XSLT和包含该实体的DTD(如果可能的话,我远不是XSLT专家))中使用查询(而不是“查询”),否则我不会期望它工作


使用由使用XPath的任何语言识别的文字字符或转义序列

XPath没有定义任何特殊的转义序列。当XPath在XSLT中使用时(例如在XSLT文档元素的属性中),转义序列由读取样式表的XML处理器处理。如果通过库在非XML上下文(例如,来自Java或C#或其他语言)中使用XPath,并且XPath查询是该语言中的字符串文本,那么除了该语言本身通常进行的转义处理之外,您将不会得到任何转义处理

如果这是C#或Java,那么应该可以:

String xpath = "//h3[text()='Foo \u8250 Bar']";
...

顺便说一句,它在XSLT中也不起作用,因为XSLT使用XML,它不定义字符实体-它只定义
。您必须使用
&x8250;
,或者自己在XSLT样式表的DOCTYPE声明中定义字符实体。

应该匹配。您使用的是哪种语言的哪些XML库?