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
Select 使用XPATH,如何在保留路径的同时选择多个元素_Select_Xpath_Element - Fatal编程技术网

Select 使用XPATH,如何在保留路径的同时选择多个元素

Select 使用XPATH,如何在保留路径的同时选择多个元素,select,xpath,element,Select,Xpath,Element,假设我有这样一个XML: <a> <b> <i>data</i> <ii>data</ii> <iii>data</iii> </b> <b> <i>data<i> <ii>data<ii> <iii>data</iii> </b>

假设我有这样一个XML:

<a>
  <b>
    <i>data</i>
    <ii>data</ii>
    <iii>data</iii>
  </b>
  <b>
    <i>data<i>
    <ii>data<ii>
    <iii>data</iii>
  </b>
</a>

数据
数据
数据
数据
数据
数据
使用XPath,我将如何选择上述XML来创建这样的结构:

  <b>
    <i>data</i>
    <ii>data</ii>
  </b>
  <b>
    <i>data<i>
    <ii>data<ii>
  </b>  

数据
数据
数据
数据
在这个场景中,我只对I和ii和感兴趣,但希望保留外部元素。我也不能使用XSLT,只能使用XPATH语句


谢谢

也许我错了,但我认为XPATH在其自己的抽象模型中只选择“节点”序列。如果这里没有XSLT,我将不知所措

/a/*/i/..|/a/*/ii/..

从a中选择所有子节点,然后选择所有“i”元素,然后选择父节点,或从a中选择所有子节点,然后选择所有“ii”元素,然后选择父节点。

要选择所有节点,包括其父节点、外部节点:

/a[i or ii]|/a/i|/a/ii|/b[i or ii]|/b/i|/b/ii

我相信你是对的Zedoo。到目前为止,我无法选择元素“b”和子元素“I”和“ii”。你将始终获得额外的子节点(“iii”)。感谢大家的帮助!