2012-04-05 8 views
2

Ich habe folgendes:XSLT-Namespace Änderungs

<Data xmlns:x="Namespace.com"> 
    <Node></Node> 
    <Node2></Node2> 
    <Node3></Node3> 
</Data> 

Wie XSLT verwenden kann ich den einen Namensraum innerhalb des Datenknoten ändern, ohne die Namespace-Deklaration sieht überall sonst erscheinen.

gewünschte Ausgabe:

<Data xmlns:x="TheNewNamespace.com"> 
    <Node></Node> 
    <Node2></Node2> 
    <Node3></Node3> 
</Data> 

Vielen Dank im Voraus

Antwort

2

Verwendung:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" indent="yes"/> 

    <xsl:template match="*"> 
    <xsl:element name="{name()}" namespace="TheNewNamespace.com"> 
     <xsl:copy-of select="@*"/> 
     <xsl:apply-templates/> 
    </xsl:element> 
    </xsl:template> 

</xsl:stylesheet> 
+0

perfekte Antwort ty, wird einmal in einer Minute erlaubt accept. – Mike

+0

@Mike, Danke. Aber Sie sollten bemerken, dass sich in Ihrem Beispiel alle Elemente im Standard-Namespace befinden, nicht in 'Namespace.com'. Meine Lösung stellt alle Elemente in den Namensraum "TheNewNamespace.com". –

+0

Das Beispiel spiegelt nur das Layout meines tatsächlichen xml-Dokuments wider, und selbst wenn dies der Fall sein sollte, liest XSLT es immer noch so, als wäre es in einem Namespace:/Wenn ich es beim Analysieren nicht deklariere, finde ich keine Knoten usw. – Mike

Verwandte Themen