XPath文本()表达式包含换行符

9

假设我有以下HTML代码:

<a href="/site/somesite/">
                          somesite</a>

我的问题是如何编写一个XPath表达式,必须使用 text() 属性来匹配 somesite 链接,我不能更改源代码?

请明确说明以下两点:(1) 您要提取的内容具体是什么,(2) 您如何在整个文档中唯一地识别它。 - Mark Thomas
2个回答

7

我不确定您是想根据链接文本查找URL,还是根据URL查找链接文本。这将为您获取URL:

//a[normalize-space() = 'somesite']/@href

这将为您获取文本:
normalize-space(//a[@href = '/site/somesite/'])

2

使用normalize-space()函数,它会丢弃前导和尾随的空格字符(并将文本中间重复的空格压缩为一个空格),这样您就可以比较规范化的text()并使用谓词进行过滤。

a[normalize-space(text())='somesite']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接