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