Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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
Xml 将节点组移动到新节点_Xml_Xslt_Move - Fatal编程技术网

Xml 将节点组移动到新节点

Xml 将节点组移动到新节点,xml,xslt,move,Xml,Xslt,Move,我的XML结构如下所示: <root> <prices>....</prices> <image1> <img1>....</img1> </image1> <image2> <img2>....</img2> </image2> <image3> <img3>....</img3> </image

我的XML结构如下所示:

<root>
 <prices>....</prices>
 <image1>
  <img1>....</img1>
 </image1>
 <image2>
  <img2>....</img2>
 </image2>
 <image3>
  <img3>....</img3>
 </image3>
 <data>....</data>
</root>

....
....
....
....
....
但我需要将image1、image2和image3移动到根节点的末尾,使其看起来像这样

<root>
<prices>....</prices>
<data>....</data>
<sab>
<sab1>
<store>
<tab>
<cell1>...</cell1>
<cell2>
<image1>
<img1>....</img1>
</image1>
<image2>
<img2>....</img2>
</image2>
<image3>
<img3>....</img3>
</image3>
<cell2>
<tab>
<store>
<sab1>
<sab>
</root>

....
....
...
....
....
....

我尝试了所有方法,但无法使其正常工作。

您发布的所需结果以
结尾,这不是格式良好的XML,带有所有像
这样的起始标记。假设你想

<root>
<prices>....</prices>
<data>....</data>
<sab>
<sab1>
<store>
<tab>
<cell1>...</cell1>
<cell2>
<image1>
<img1>....</img1>
</image1>
<image2>
<img2>....</img2>
</image2>
<image3>
<img3>....</img3>
</image3>
</cell2>
</tab>
</store>
</sab1>
</sab>
</root>

....
....
...
....
....
....
您将为根元素设置一个模板

<xsl:template match="root">
  <xsl:copy>
    <xsl:copy-of select="node()[not(self::image1 | self::image2 | self::image3)]"/>
    <sab>
    <sab1>
    <store>
    <tab>
    <cell1>...</cell1>
    <cell2>
      <xsl:copy-of select="image1 | image2 | image3"/>
    </cell2>
    </tab>
    </store>
    </sab1>
    </sab>
  </xsl:copy>
</xsl:template>

...

您能否在问题中加入您的最佳代码尝试?也许这是一个好的开始。否则,您将迫使其他人实际为您编写代码。这不是StackOverflow的重点。另外,您是否可以缩进所需的输出,使标记层次结构更为明显?