1

我有一个这样的 XML:

<root>
 <parent1>
   <parent2>
     <child label="single'quote"/>
     <child label="double&quot;quote"/>
   </parent2>
   <parent3/>
   <parent4>
     <child label = "single'quote"/>
   </parent4>
 </parent1>
</root>

我的目标是选择具有特定标签的子节点,比如单引号

我可以使用 XPath 表达式,

         //child[@label='single'quote']

由于值中的特殊字符 ' ,这显然会引发错误。

我想出了一个使用逻辑的解决方案:

用label的值给父节点设置一个属性dummy ,比较两个属性。[添加dummy="single'quote"parent1节点。]

因此,我们可以使用以下方法读取标签为“单引号”的子节点:

 //child[@label=//parent1/@dummy]

虽然它在 IE 和 Firefox9 中运行良好,但在 Chrome21 中却失败了。

逻辑有问题吗?如何更正 Chrome 的表达式?

非常感谢。

4

1 回答 1

1

使用

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

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

在此处输入图像描述

对于第二个问题,请使用

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

这是 XPath Visualizer 的屏幕截图:

在此处输入图像描述

于 2012-08-14T13:04:18.340 回答