Html 什么xpath 1表达式对多行文本进行不区分大小写的匹配?

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,它只返

我有一些html标记,其中包含许多如下所示的标签:

<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。你说得对。这解释了为什么我的尝试失败了,但这无助于我实现在查询中使用“一二三四”匹配这两个选项的目标。谢谢你的建议。这可能就是我必须要做的——将标签规范化为某种标准(例如:全部小写,没有空格),并在此基础上进行搜索。