xsl / xml移动同一节点中的元素

时间:2017-02-09 19:04:07

标签: xml xls

我有一个问题。现在我想在同一节点中移动元素。

我有这个

<test>
- <invoice>
   <id>163-01</id>
   <date>2016-09-06</date>
   <cadreLegal>LAB</cadreLegal>
   <prestataire>907</prestataire>
   <personneProtegee>1951</personneProtegee>
   <dateEtablissement>2016-09-06</dateEtablissement>
   <heureEtablissement>13:22:00</heureEtablissement> 
 </invoice>
- <invoice>
   <id>163-01</id>
   <date>2016-09-06</date>
   <cadreLegal>LAB</cadreLegal>
   <prestataire>907</prestataire>
   <personneProtegee>1951</personneProtegee>
   <dateEtablissement>2016-09-06</dateEtablissement>
   <heureEtablissement>13:22:00</heureEtablissement>
 </invoice>
</test>

我会撒谎将“id”移动到节点中的最后一个位置。

<test>
- <invoice>
   <date>2016-09-06</date>
   <cadreLegal>LAB</cadreLegal>
   <prestataire>907</prestataire>
   <personneProtegee>1951</personneProtegee>
   <dateEtablissement>2016-09-06</dateEtablissement>
   <heureEtablissement>13:22:00</heureEtablissement> 
   <id>163-01</id>
 </invoice>
- <invoice>
   <date>2016-09-06</date>
   <cadreLegal>LAB</cadreLegal>
   <prestataire>907</prestataire>
   <personneProtegee>1951</personneProtegee>
   <dateEtablissement>2016-09-06</dateEtablissement>
   <heureEtablissement>13:22:00</heureEtablissement>
   <id>163-01</id>
 </invoice>
</test>

我尝试了这段代码,它运行得很好(经过一些研究)。

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
 
<!-- identity transform -->
<xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>
 
<xsl:template match="order">
    <xsl:apply-templates/>
</xsl:template>
 
<xsl:template match="invoice">
  <xsl:copy>
    <xsl:apply-templates select="cadreLegal|prestatairePrescripteur | personneProtegee | dateEtablissement | heureEtablissement "/>
    <xsl:apply-templates select="id "/>
  </xsl:copy>
  </xsl:template>
</xsl:stylesheet>

提前感谢您的帮助。

0 个答案:

没有答案