XPath从子元素中排除文本
我希望得到输出:XPath从子元素中排除文本,xpath,Xpath,我希望得到输出: 50ml milk 从以下代码: 50毫升 您可以使用 //ul[@class="ingredients-list__group"]// text()[not(ancestor::div[@class='tooltip'])] 如果您使用的是XPath 2.0,那么可以将其放入string-join()的调用中,以将其连接到单个字符串中。如果您坚持使用1.0,则必须将多个文本节点返回到调用应用程序,并在宿主语言代码中将它们连接在一起。使用xpath
50ml milk
从以下代码:
- 50毫升
您可以使用
//ul[@class="ingredients-list__group"]//
text()[not(ancestor::div[@class='tooltip'])]
如果您使用的是XPath 2.0,那么可以将其放入string-join()的调用中,以将其连接到单个字符串中。如果您坚持使用1.0,则必须将多个文本节点返回到调用应用程序,并在宿主语言代码中将它们连接在一起。使用xpath<2.0:
//ul[@class="ingredients-list__group"]/li/concat(./text()[1], ./a/text()[1])
使用xpath
1.0:
concat(//ul[@class="ingredients-list__group"]/li/text()[1], //ul[@class="ingredients-list__group"]/li/a/text()[1])'
请说明您使用的是哪个XPath版本。对不起,我应该指定使用PHP,所以XPath 1.0和concat不起作用!然而,第二个代码非常接近。我对它进行了修改,使用了“|”合并操作符,但它将两个相关部分(50ml和milk)作为单独的数组项输出。你知道如何在查询时合并它们吗?因为我还有其他的要处理。@DrMikey,如果PHP是您案例中的一个关键标记,那么您应该在您的问题+您当前的PHP代码中添加它