我想从他们的武器开始提取有关真人快打角色的信息。
示例代码:
<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: '),'</span>')
,但它没有返回任何内容。
我想我很亲近,有人能指引我朝正确的方向发展吗?
答案 0 :(得分:1)
XPath适用于文档的XML结构,而不适用于原始文本。如果要提取的文本始终位于<b>
元素内,则可以使用:
string(//ul[@class = 'characterInfo']/li[starts-with(., 'Weapons:')]/b)
以下是更普遍的:
substring-after(//ul[@class = 'characterInfo']/li[starts-with(., 'Weapons: ')], 'Weapons: ')