Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xpath,在“之后获取子字符串”;“已关闭”;结束时html标记/结束节点_Xpath - Fatal编程技术网

Xpath,在“之后获取子字符串”;“已关闭”;结束时html标记/结束节点

Xpath,在“之后获取子字符串”;“已关闭”;结束时html标记/结束节点,xpath,Xpath,我想从他们的武器开始,提取关于凡人快击球员的信息 示例代码: <ul class="characterInfo"> <li>Name: <b> <span>Lui Kang</span></b></li> <li>Created by: <b><span>John Tobias</span></b></li> <li>Battl

我想从他们的武器开始,提取关于凡人快击球员的信息

示例代码:

<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>
所以我没有按照正确的方式使用子字符串。我应该用第一个
-节点结束提取

我尝试了
子字符串before(子字符串before)(,'wearms:'),'/span')
,但它没有返回任何内容


我想我很接近了,有人能告诉我正确的方向吗?

XPath处理文档的XML结构,而不是原始文本。如果要提取的文本始终位于
元素中,则可以使用:

string(//ul[@class = 'characterInfo']/li[starts-with(., 'Weapons:')]/b)
以下内容更具普遍性:

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

为什么要匹配文本HTML文本而不是选择所需的元素?武器元素(本例中为li[4])并不总是位于第四位。这并不能回答我的问题。您仍然不想尝试选择文本HTML标记。在计算XPath表达式时,文本HTML字符串已转换为表示原始源文档的抽象节点树,XPath操作的正是该表示。Oops,没有看到您的帖子弹出。同样的答案。删除我的+1Hm,我在两个示例中都得到了[无效的XPATH表达式]。是的,我在两个表达式中都有一些错误。固定和验证。
substring-after(//ul[@class = 'characterInfo']/li[starts-with(., 'Weapons: ')], 'Weapons: ')