Xpath,在end-html标签/结束节点处“关闭”之后得到子字符串

时间:2014-01-29 22:55:14

标签: xpath

我想从他们的武器开始提取有关真人快打角色的信息。

示例代码:

<ul class="characterInfo">

<li>Name: <b> <span>Lui Kang</span></b></li>
<li>Created by: <b><span>John Tobias</span></b></li>
<li>Battle cry: <b><span><a href="/sound/mortalkombat/luikang"><u>Click here</u></a></span></b></li>
<li>Weapons: <b><span>Dragon sword and nunchaku</span></b></li>
<li>Origin: <b><span>China</span></b> </li>

</ul>

使用Xpath substring-before(substring-after(.,'Weapons: '),','),提取变为

Dragon sword and nunchaku
                            Origin: China

所以我没有使用substring - 以正确的方式。我应该用第一个</span> - 节点

结束提取

我尝试了substring-before(substring-after(.,'Weapons: '),'&lt;/span&gt;'),但它没有返回任何内容。

我想我很亲近,有人能指引我朝正确的方向发展吗?

1 个答案:

答案 0 :(得分:1)

XPath适用于文档的XML结构,而不适用于原始文本。如果要提取的文本始终位于<b>元素内,则可以使用:

string(//ul[@class = 'characterInfo']/li[starts-with(., 'Weapons:')]/b)

以下是更普遍的:

substring-after(//ul[@class = 'characterInfo']/li[starts-with(., 'Weapons: ')], 'Weapons: ')