第一个词的 XPath?
XPath for first word?
为此 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\-]+).*', '')
将 return 字符串值中具有非 space 字符的那些 h1
元素的字符串值的所有第一个单词。
XPath 1.0
substring-before(
concat(
normalize-space(
translate(//h1[normalize-space()][1], ',;/.', ' ')), ' '), ' ')
近似于更强大的 XPath 2.0 解决方案。根据需要为您考虑定义单词边界的各种字符展开 ',;/.'
。
解释:
- Select 具有非白色 space-only 字符串值的第一个
h1
。
- 将所有单词边界字符映射到 spaces.
- 追加 space 以涵盖单个单词的大小写。
- 标准化间距。
- Return 第一个 space.
之前的子字符串
为此 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\-]+).*', '')
将 return 字符串值中具有非 space 字符的那些 h1
元素的字符串值的所有第一个单词。
XPath 1.0
substring-before(
concat(
normalize-space(
translate(//h1[normalize-space()][1], ',;/.', ' ')), ' '), ' ')
近似于更强大的 XPath 2.0 解决方案。根据需要为您考虑定义单词边界的各种字符展开 ',;/.'
。
解释:
- Select 具有非白色 space-only 字符串值的第一个
h1
。 - 将所有单词边界字符映射到 spaces.
- 追加 space 以涵盖单个单词的大小写。
- 标准化间距。
- Return 第一个 space. 之前的子字符串