html - 第一个单词的 XPath?
问题描述
对于此 HTML / XML:
<div class="contentBlock">
<h2> </h2>
<h1></h1>
<h1>DBS055 - single module packages</h1>
</div>
我只想用 XPath 提取DBS055
,而不是整个文本。
解决方案
XPath 2.0
//h1[normalize-space()]/replace(normalize-space(),'^([\w\-]+).*', '$1')
h1
将返回那些在其字符串值中具有非空格字符的元素的字符串值的所有第一个单词。
XPath 1.0
substring-before(
concat(
normalize-space(
translate(//h1[normalize-space()][1], ',;/.', ' ')), ' '), ' ')
近似于更健壮的 XPath 2.0 解决方案。根据需要扩展',;/.'
您考虑定义单词边界的各种字符。
解释:
- 选择第一个
h1
具有非纯空格字符串值的。 - 将所有单词边界字符映射到空格。
- 附加一个空格来覆盖单个单词的大小写。
- 标准化间距。
- 返回第一个空格之前的子字符串。
推荐阅读
- swift - 向 Base64 字符串添加填充的 Swift 将返回较小的字符串
- wordpress - 如何在使用 WPForms 提交时不清除表单
- css - React Native Image 未以 View 为中心
- javascript - 未定义的 ERROR javascript 值,中间有空格
- reactjs - 我想学习如何使用 populate() 和 aggregate()
- python - 是否有任何代码可用于在 JSON 中查找完整案例?
- flutter - Flutter 动画翻译 2 种不同的动作
- python-3.x - 如何使用 BeautifulSoup 在某个部分进行解析
- javascript - 正则表达式排除不符合由分隔符分隔的两种模式之一的匹配项
- android - Android nfcA.transceive(byte[] command),从 nfc 设备获取数据的命令序列是什么?