我有这样的XML:
<root>
<parent1>
<parent2>
<child label="single'quote"/>
<child label="double"quote"/>
</parent2>
<parent3/>
<parent4>
<child label = "single'quote"/>
</parent4>
</parent1>
</root>
我的目标是选择具有特定标签的子节点,例如 single&#39; quote
我可以使用XPath Expression,
//child[@label='single'quote']
由于特殊字符而显然会出错。在价值中。
我想出了一个使用逻辑的解决方案:
使用标签的值将属性 虚拟 设置到父节点,并比较这两个属性。 [已将 dummy =&#34; single&#39; quote&#34; 添加到 parent1 节点。]
因此,我们可以读取带有标签的子节点为&#34; single&#39; quote&#34;使用:
//child[@label=//parent1/@dummy]
虽然它在IE和Firefox9中运行得非常好,但它在Chrome21中失败了。
这个逻辑有什么缺陷吗?如何更正Chrome的表达式?
非常感谢。
答案 0 :(得分:1)
使用强>:
/*/parent1/parent2/*[@label="single'quote"]
以下是使用XPath Visualizer执行评估的屏幕截图:
对于第二个问题,请使用:
/*/parent1/parent2/*[@label='double"quote']
这是来自XPath Visualizer的屏幕截图: