Diskuze: <xsl:element> a <xsl:attribute>
Zobrazeno 2 zpráv z 2.
No, tak jsem hledal a přemýšlel, tak snad nějakému jinému
začátečníkovi pomůže, na co jsem přišel.
Odpověď na otázku "Proč a kdy použít <xsl:element name="nazev"> a
kdy použít <nazev>?"
2 Pokud potřebuju jméno mnou zamýšleného elementu nechat vygenerovat na základě nějakých hodnot, které dopředu neznám, pak musím použít <xsl:element>
Například mám takovéhle XML, které dopředu moc neznám a má většinu dat uložených v atributech a já z každého atributu chci udělat samostatný element a zároveň stávající elementy také zkopírovat.
XML:
<?xml version="1.0" encoding="utf-8"?>
<Result>
<StoItem Id="30437" Code="CARX1034" EAN="2000000005003"/>
<StoItem Id="30490" Code="TONX1645" EAN="2000000000176" EAN2="8585000630102"/>
<StoItem Id="30491" Code="TONX1646" EAN="5017534935185">
<item>Notebook jak vyšitý</item>
</StoItem>
<StoItem Id="30496" Code="TONX1650" EAN2="2000000000114" PID="8585000630188"/>
<StoItem Id="30497" Code="TONX1651" EAN="5017534970261"/>
<StoItem Id="30511" Code="TONX1660" EAN="8585000635077" jinykod="2000000000558"/>
</Result>
XSL:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*">
<xsl:element name="{name()}"><xsl:value-of select="."/></xsl:element>
</xsl:template>
</xsl:stylesheet>
Snad to někomu pomůže.
Petr V.
Zobrazeno 2 zpráv z 2.