XSLT
mario
- xsl
Hallo,
habe wiedereinmal ein XSLT Problem un dkomm nicht auf die richtige Transformation:
Das ist mein SourceFile:
<?xml version="1.0" encoding="UTF-8"?>
<div id="body" name="body" backgroundColor="grey">
<div id="mobMenu2" name="mobMenu2" color="white">
<div id="V" backgroundColor="yellow" color="red" height="50"></div>
<div id="O" backgroundColor="yellow" color="red" height="50"></div>
<div id="R" backgroundColor="yellow" color="red" height="50"></div>
<div id="P" backgroundColor="yellow" color="red" height="50"></div>
</div>
</div>
Das ist meine XSLT
<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="//*[@id='P']/@height">
<xsl:attribute name="height">200</xsl:attribute>
</xsl:template>
<xsl:template match="//*[@id='V']/@height">
<xsl:attribute name="height">200</xsl:attribute>
</xsl:template>
<xsl:template match="//*[@id='V']">
<xsl:copy-of select="//*[@id='P']"/>
</xsl:template>
<xsl:template match="//*[@id='P']">
<xsl:copy-of select="//*[@id='V']"/>
</xsl:template>
</xsl:stylesheet>
und das soll das TargetFile sein:
<?xml version="1.0" encoding="UTF-8"?>
<div id="body" name="body" backgroundColor="grey">
<div id="mobMenu2" name="mobMenu2" color="white">
<div id="P" backgroundColor="yellow" color="red" height="200"></div>
<div id="O" backgroundColor="yellow" color="red" height="50"></div>
<div id="R" backgroundColor="yellow" color="red" height="50"></div>
<div id="V" backgroundColor="yellow" color="red" height="200"></div>
</div>
</div>
Nun ist es so, dass die VErtauschung der beiden Elemente mit id "P" und "V" erfolgt, aber die Atrributwert zuweisung an die height eben nicht. Kann mir vielleicht jemand sagen, wie ich von der AusgangsXML auf die ZielXML komme.
Danke im Voraus!
Gruss, Mario