如何使用XPath选择包含单引号的元素?

时间:2016-05-24 02:02:05

标签: html xpath escaping

我想使用XPath选择此元素:

<a href="#" onClick="onViewDocument('2016', '1');">2016</a>

到目前为止,我有这个:

//a[@onClick='onViewDocument('2016', '1');']

我是否需要绕过20161周围的单引号?

2 个答案:

答案 0 :(得分:3)

最简单的方法通常是使用'"的替代方法,具体取决于字符串文字周围已使用的内容。

如果这不可行,另一种方法是使用&apos; '单引号):

//a[@onClick='onViewDocument(&apos;2016&apos;, &apos;1&apos;);']

请注意,您可以&quot;使用"双引号)。

参考 XML Path Language (XPath) Version 1.0

  

XPath表达式经常出现在XML属性中。指定的语法   本节适用于XML 1.0之后的属性值   正常化。因此,例如,如果语法使用字符<,   这不能作为<出现在XML源代码中,但必须引用   例如,根据XML 1.0规则,将其输入为&lt;。   在表达式中,文字字符串由单个或双重分隔   引号,也用于分隔XML属性。至   避免XML解释的表达式中的引号   处理器作为终止引号可以的属性值   作为字符引用输入(&quot;&apos;)。或者,   如果XML属性是,则表达式可以使用单引号   用双引号分隔,反之亦然。

答案 1 :(得分:0)

这适用于'中包含onclick的所有元素:

//a[contains(@onclick, "'")]

这是针对您尝试匹配的特定元素:

//a[@onClick="onViewDocument('2016', '1')"]