удалить кодировку = "UTF-8"? из <? xml version = "1.0" encoding = "UTF-8"?> используя xslt - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь добавить 2 пространства имен и удалить кодировку = "UTF-8" ?, но не могу удалить кодировку = "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 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">
    <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 голосов
/ 21 июня 2019
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>
...