2

我希望这是一个小问题:

我想搜索一个可以包含双引号“和/或单引号”的文本。现在我可以使用这个:

"//a[contains(text(), '"+ mytext +"')]" 

或这个:

'//a[contains(text(), "'+ mytext +'")]'

但如果我有 mytext 是这样的:

a'b"c 

我(当然)得到一个 xpath 错误(无效的 XPath 表达式)。我怎样才能避免它?

4

2 回答 2

2

在 XPath 2.0 中,字符串文字的定界引号可以通过加倍: 包含在文字中"He said, ""I can't"""

在 XPath 1.0 中,这样的字符串不能写成文字,但可以使用 concat() 表示:concat("He said, ", '"', "I can't", '"')

当然,如果这样的 XPath 表达式随后要在诸如 Python 之类的宿主语言中编写为字符串文字,则必须根据 Python 规则进一步对引号进行转义。

于 2013-08-24T21:33:36.050 回答
-1

使用 Python 三引号 r"""a'b"c"""。在 xpath 中,使用 escape 。

于 2013-08-24T18:52:08.497 回答