我有以下HTML:
<p>
Some cool text
<a href="#">looks like</a>
this.
</p>
我想将文本抓成一行:
一些很酷的文字看起来像这样。
我当前正在使用以下XPath查询:
// p // text()
它返回所有文本,但以单独的行显示:
一些很酷的文字
看起来像
这个。
是否有关于如何修改查询以使查询可以单行返回的想法?
查询需要满足XPath1.0要求。
答案 0 :(得分:2)
text()
选择单个文本节点,并且元素之间(有文本的地方)将始终至少有一个文本节点。您想要的是将p
转换为字符串:
//p/string(.)
答案 1 :(得分:2)
如果您具有XPath-2.0或更高版本,则可以使用string-join(...)
合并text()
值:
string-join(normalize-space(p))
答案 2 :(得分:1)
此XPath(1.0或更高版本)
string(normalize-space())
将返回
"Some cool text looks like this."
根据要求在一行中。