2017-12-28 12 views
1

Ich habe Eingabedatei kommt mit anderen Namespace. Für meine Anforderung muss ich jedoch mit 1 xslt umgehen.Ignorieren Namespace in XSLT

Eingabedatei 1:

<header xmlns="urn:xyz:hello"> 
     <body> 
      <element1>hi</element1> 
      <element2>sen</element2> 
     </body> 
    </header> 

Eingabedatei 2:

<header xmlns="urn:abc:hello1"> 
    <body> 
     <element1>hi</element1> 
     <element2>sam</element2> 
    </body> 
</header> 

Ähnlich dem obigen Beispiel würde ich Dateien bekommen mit anderen Namespace urn:cdf:well, urn:cdf:hello, ....

Wie Ich handle das in 1 xslt?

Ihr Rat wird sehr geschätzt.

Dank Sen

+0

Was meinen Sie eigentlich damit, dass Sie sagen "Sie müssen damit umgehen". Möchten Sie den Namespace einfach entfernen, oder möchten Sie den XML-Code tatsächlich transformieren, aber den Namespace behalten, unabhängig davon, welcher Namespace verwendet wird? Es würde helfen, wenn Sie in jedem Fall Ihre erwartete Leistung zeigen würden. Vielen Dank. –

Antwort

1

Anstelle der -Identity-Vorlage die folgenden Vorlagen verwenden, "Löschen" alle Namespace.

<xsl:template match="*"> 
    <xsl:element name="{local-name()}"> 
    <xsl:apply-templates select="@*|node()"/> 
    </xsl:element> 
</xsl:template> 

<xsl:template match="@*"> 
    <xsl:attribute name="{local-name()}"> 
    <xsl:value-of select="."/> 
    </xsl:attribute> 
</xsl:template> 
+0

Hallo, ich habe versucht, die obigen Vorlagen in meinem XSLT hinzuzufügen. Aber die Ausgabe ist null! – Sen

+0

Wahrscheinlich hat Ihr Skript andere, spezifischere Vorlagen und diese werden "ausgeführt" (anstelle von mir). Beginnen Sie mit nur diesen (meinen) Vorlagen und fügen Sie "alte" Vorlagen einzeln hinzu. Vielleicht sollten diese (alten) Vorlagen meine Lösung bezüglich des Weglassens von Namespaces übernehmen. Enthalten Ihre Vorlagen * Anwendungsvorlagen *? –

Verwandte Themen