删除encoding =“ UTF-8”?使用xslt从<?xml version =“ 1.0” encoding =“ UTF-8”?>

时间:2019-06-21 01:52:45

标签: xslt-2.0

我试图添加2个名称空间并删除encoding =“ UTF-8” ?,但无法删除encoding =“ UTF-8”。

输入xml:

  <?xml version="1.0" encoding="UTF-8"?>
   <ACCEPTATION Date_de_Production="2019-06-20T19:45:48.470-04:00" 
   Id_fichier_CAM="CAM_erreur piece 395 balise absent non permises.xml" 
   Artwork="Artwork-6" Environnement="UNIT" Nombre_Pieces_Lues="6" 
  Nombre_Pieces_Invalides="6" Statut_Acceptation_Statut="ACCEPTE" 
   Statut_Acceptation_Code_Rejet="000" Traitement_Producteur="GPH321">
  <PIECE>
  <CAM_Type_Piece>CAMPS</CAM_Type_Piece>
   <CAM_Statut>NON CHARGE</CAM_Statut>
  </PIECE>
  <PIECE>
   <CAM_Type_Piece>CAMPS</CAM_Type_Piece>
  <CAM_Statut>NON CHARGE</CAM_Statut>>
  </PIECE>
 </ACCEPTATION>

xslt代码:请更正代码,并帮助我获得所需的输出。

 <?xml version="1.0"?>
 <xsl:stylesheet version="1.0" 
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output indent="yes" method="xml" omit-xml-declaration="yes"/>
 <xsl:strip-space elements="*"/>
    <!-- <xsl:output method="xml" omit-xml-declaration="yes"/>-->
    <xsl:template match="@*|text()|comment()|processing-instruction()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>
<xsl:template match="ACCEPTATION">
    <ACCEPTATION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <xsl:apply-templates select="@*|node()"/>
    </ACCEPTATION>
  </xsl:template>
   <xsl:template match="*">
    <xsl:element name="{local-name()}">
    <xsl:apply-templates select="@*|node()"/>
    </xsl:element>
</xsl:template>    
</xsl:stylesheet>

必需的xml:在输出xml中不应存在编码。

<?xml version="1.0">
   <ACCEPTATION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
         Artwork="Artwork-6"
         Date_de_Production="2019-06-20T19:45:48.470-04:00"
         Environnement="UNIT"
         Id_fichier_CAM="CAM_erreur piece 395 balise absent non 
permises.xml"
         Nombre_Pieces_Invalides="6"
         Nombre_Pieces_Lues="6"
         Statut_Acceptation_Code_Rejet="000"
         Statut_Acceptation_Statut="ACCEPTE"
         Traitement_Producteur="GPH321">
 <PIECE>
  <CAM_Type_Piece>CAMPS</CAM_Type_Piece>
  <CAM_Statut>NON CHARGE</CAM_Statut>
 </PIECE>
 <PIECE>
  <CAM_Type_Piece>CAMPS</CAM_Type_Piece>
  <CAM_Statut>NON CHARGE</CAM_Statut>&gt;
 </PIECE>
 </ACCEPTATION>

1 个答案:

答案 0 :(得分:0)

check this code:-

<?xml version="1.0"?>
 <xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output indent="yes" method="xml" omit-xml-declaration="yes"/>
 <xsl:strip-space elements="*"/>
    <!-- <xsl:output method="xml" omit-xml-declaration="yes"/>-->
    <xsl:template match="@*|text()|comment()|processing-instruction()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>
<xsl:template match="ACCEPTATION">
<xsl:text disable-output-escaping="yes"><![CDATA[<?xml version="1.0"?>]]></xsl:text>
    <ACCEPTATION xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <xsl:apply-templates select="@*|node()"/>
    </ACCEPTATION>
  </xsl:template>
   <xsl:template match="*">
    <xsl:element name="{local-name()}">
    <xsl:apply-templates select="@*|node()"/>
    </xsl:element>
</xsl:template>    
</xsl:stylesheet>