Html 什么xpath 1表达式对多行文本进行不区分大小写的匹配?
我有一些html标记,其中包含许多如下所示的标签:Html 什么xpath 1表达式对多行文本进行不区分大小写的匹配?,html,selenium,xpath,Html,Selenium,Xpath,我有一些html标记,其中包含许多如下所示的标签: <label>One two three four</label> <label>One two three<br>four</label> //label[text()[contains(., 'One two three four')]] 这适用于文本中不包含的标签,但无法找到包含的第二个实例 做一点研究,看起来规范化空间应该是可行的,但似乎不行。这是我尝试的xpath,它只返
<label>One two three four</label>
<label>One two three<br>four</label>
//label[text()[contains(., 'One two three four')]]
这适用于文本中不包含
的标签,但无法找到包含
的第二个实例
做一点研究,看起来规范化空间应该是可行的,但似乎不行。这是我尝试的xpath,它只返回第一个节点
//label[text()[contains(normalize-space(.), 'One two three four')]]
我也尝试过,但它返回零个节点
//label[normalize-space(text())[contains(., 'Generate')]]
那么,有没有一种方法可以创建一个xpath来查找带有文本“一二三四”的标签,即使实际html标记中有
元素?或translate()
去掉空格和匹配:
$ cat foo.html
<label>One two three four</label>
<label>One two three<br>four</label>
$ xpquery -p HTML '//label[contains(translate(normalize-space(.), " ", ""), "Onetwothreefour")]/text()' foo.html
One two three four
One two three
four
$
$cat foo.html
一二三四
一二三
四
$xpquery-p HTML'//label[包含(翻译(规范化空格(.),“”,“”),“onetwotreefour”)]/text()'foo.HTML
一二三四
一二三
四
$
您可以使用//label[.=“一二三四”]
或//label[包含(,,“一二三四”)]选择一二三
four
。在这种情况下,3
和4
之间没有文本。@MartinHonnen:ugh。你说得对。这解释了为什么我的尝试失败了,但这无助于我实现在查询中使用“一二三四”匹配这两个选项的目标。谢谢你的建议。这可能就是我必须要做的——将标签规范化为某种标准(例如:全部小写,没有空格),并在此基础上进行搜索。