我希望这是一个小问题:
我想搜索可以包含双引号 "和/或单引号 ' 的文本。现在我可以使用它:
"//a[contains(text(), '"+ mytext +"')]"
或者这个:
'//a[contains(text(), "'+ mytext +'")]'
但是如果我有 mytext 是这样的:
a'b"c
我得到(当然)一个 xpath 错误(无效的 XPath 表达式)。我该如何避免?
请您参考如下方法:
在 XPath 2.0 中,字符串文字的定界引号可以通过加倍包含在文字中:"He said, ""I can't"""。
在 XPath 1.0 中,这样的字符串不能写成字面量,但是可以使用 concat() 来表示: concat("He said, ", '"', "I can't", '"')
当然,如果这样的 XPath 表达式随后要用宿主语言(如 Python)编写为字符串文字,则必须根据 Python 规则进一步对引号进行转义。
