XPath表达式 - 在Chrome中失败但在IE,FF中运行

时间:2012-08-14 05:49:34

标签: internet-explorer firefox google-chrome xpath cross-browser

我有这样的XML:

<root>
 <parent1>
   <parent2>
     <child label="single'quote"/>
     <child label="double&quot;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的表达式?

非常感谢。

1 个答案:

答案 0 :(得分:1)

使用

/*/parent1/parent2/*[@label="single'quote"]

以下是使用XPath Visualizer执行评估的屏幕截图:

enter image description here

对于第二个问题,请使用

/*/parent1/parent2/*[@label='double"quote']

这是来自XPath Visualizer的屏幕截图:

enter image description here