Skip to main content
 首页 » 编程设计

python xpath : single quotationmarks and double quotationmarks

2025年05月04日11oomusou

我希望这是一个小问题:

我想搜索可以包含双引号 "和/或单引号 ' 的文本。现在我可以使用它:

"//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 规则进一步对引号进行转义。