2013-02-10 8 views
22

Hallo, ich erzeuge ein XML, indem ich das xsl auf eine XML-Eingabe aufsetze. Ich brauche die Ausgabe ohne diesen Teil "<?xml version="1.0" encoding="utf-16"?>"Notwendigkeit, <? Xml version = "1.0" encoding = "utf-16"?> Aus dem xml zu entfernen

Eingang - xml

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<soap:Body> 
<CreateResponse xmlns="http://jerseytelecom.com/"> 
    <CreateResult> 
     <ISD_XMLGateway> 
      <Entity>RIM_BPS</Entity> 
     </ISD_XMLGateway> 
    </CreateResult> 
    </CreateResponse> 
</soap:Body> 
</soap:Envelope> 

mein xsl

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:JT="http://jerseytelecom.com/" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="JT"> 
     <xsl:output method="xml" indent="yes"/> 
     <xsl:template match="/"> 
      <xsl:element name="Entity"> 
      <xsl:value-of select="soap:Envelope/soap:Body/JT:CreateResponse/JT:CreateResult/JT:ISD_XMLGateway/JT:Entity"/> 
      </xsl:element> 
      </xsl:template> 
      </xsl:stylesheet> 

Stromausgang

<?xml version="1.0" encoding="utf-16"?> 
    <Entity>RIM_BPS</Entity> 

Erwartete Ausgabe

<Entity>RIM_BPS</Entity> 
+2

Warum? Alle gültigen XML-Dokumente müssen mit einer XML-Deklaration beginnen. – SLaks

+0

@SLaks, ich rate mal 'erm nicht so konform und um ehrlich zu sein schlechte Umsetzung. –

+2

@SLaks: Die XML-Deklaration ist in XML-Dateien jedoch optional: [Tipp: Verwenden Sie immer eine XML-Deklaration] (http://www.ibm.com/developerworks/xml/library/x-tipdecl/index.html) - (es ist kein * muss * aber ein * sollte *) – hakre

Antwort

29

Versuchen Sie, das omit-xml-declaration="yes" Attribut zu Ihrem xsl:output Tag hinzuzufügen.

Es sollte dann wie folgt lauten:

<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" /> 
11

Setzen Sie diese in Ihrem Xslt

<xsl:output method="xml" omit-xml-declaration="yes"/> 

oder

in einem extremen Push

<xsl:output method="text" /> 

sollte das Symptom lösen ...

Die letzte könnte je nach Prozessor jedoch erhebliche Konsequenzen haben.

0

Diese vollständige Transformation:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:JT="http://jerseytelecom.com/" exclude-result-prefixes="soap JT"> 
<xsl:output omit-xml-declaration="yes" indent="yes" 
    encoding="utf-8"/> 
<xsl:template match="/"> 
    <Entity> 
    <xsl:value-of select= 
    "soap:Envelope/soap:Body/JT:CreateResponse 
       /JT:CreateResult/JT:ISD_XMLGateway/JT:Entity"/> 
    </Entity> 
</xsl:template> 
</xsl:stylesheet> 

wenn auf dem mitgelieferten XML-Dokument angewandt:

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<soap:Body> 
<CreateResponse xmlns="http://jerseytelecom.com/"> 
    <CreateResult> 
     <ISD_XMLGateway> 
      <Entity>RIM_BPS</Entity> 
     </ISD_XMLGateway> 
    </CreateResult> 
    </CreateResponse> 
</soap:Body> 
</soap:Envelope> 

erzeugt das gewünschte, korrekte Ergebnis:

<Entity>RIM_BPS</Entity> 
3

Verwenden Sie diese XSLT, um encoding = "UTF-8" aus dem XML-Dokument mit XSLT zu entfernen.In Cdaata-Abschnitt Sie können die Codierung wie gewünscht hinzufügen. Prost :)

<?xml version="1.0" encoding="UTF-8" ?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" omit-xml-declaration="yes"/> 
    <xsl:template match="/"> 
     <xsl:text disable-output-escaping="yes"><![CDATA[<?xml version="1.0"?>]]></xsl:text> 
     <xsl:copy-of select="node()"/> 
    </xsl:template> 
</xsl:stylesheet> 
Verwandte Themen