我想编写将从此xml
返回的XPath查询<?xml version="1.0" encoding="UTF-8"?>
<contents>
<content type="menu_0" nested="yes">
<content type="name" lang="pol"><![CDATA[PIES]]></content>
<content type="menu_1" nested="yes">
<content type="name" lang="pol"><![CDATA[Thing1]]></content>
<content type="name" lang="pol"><![CDATA[Thing2]]></content>
<content type="name" lang="pol"><![CDATA[Thing3]]></content>
</content>
</content>
</contents>
类似这样的事情
PIES\Thing1
PIES\Thing2
PIES\Thing3
有人可以帮忙吗?:)
答案 0 :(得分:1)
使用 XPath 1.0 ,无法获得所需的所有节点,PIES\
连接到Thing*
,您需要使用三个xpath表达式,如下所示:
concat( //content[@type='menu_0']/content[@type='name']/text(), '\', //content[@type='menu_0']/content[@type='menu_1']/content[1]/text())
concat( //content[@type='menu_0']/content[@type='name']/text(), '\', //content[@type='menu_0']/content[@type='menu_1']/content[2]/text())
concat( //content[@type='menu_0']/content[@type='name']/text(), '\', //content[@type='menu_0']/content[@type='menu_1']/content[3]/text())
使用 XPath 2.0 ,您可以使用for循环在一个xpath表达式中返回列表,如下所示:
for $thing in //content[@type='menu_0']/content[@type='menu_1']/content/text()
return concat( //content[@type='menu_0']/content[@type='name']/text(), '\', $thing )