Announcement

Collapse
No announcement yet.

Wert in einem Tag ändern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wert in einem Tag ändern

    Hallo Leute,
    ich bin absoluter Neuling in XSLT, bräuchte aber dringend Hilfe.
    Mein Problem: Ich habe ein xml-Dokument und muss es eigentlich nur duplizieren, wobei der Inhalt eines bestimmten Tags (MESTYP) geändert werden soll.
    Aus diesem xml:
    <ORDERS02>
    <IDOC BEGIN="1">
    <EDI_DC40 SEGMENT="1">
    <IDOCTYP>ORDERS02</IDOCTYP>
    <CIMTYP />
    <MESTYP>ORDERS</MESTYP>
    <MESCOD />
    <SERIAL>20030730143008</SERIAL>
    </EDI_DC40>
    </IDOC>
    </ORDERS02>

    soll folgendes werden:
    <ORDERS02>
    <IDOC BEGIN="1">
    <EDI_DC40 SEGMENT="1">
    <IDOCTYP>ORDERS02</IDOCTYP>
    <CIMTYP />
    <MESTYP>INVOICE</MESTYP>
    <MESCOD />
    <SERIAL>20030730143008</SERIAL>
    </EDI_DC40>
    </IDOC>
    </ORDERS02>

  • #2
    <pre>
    &lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
    &lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;

    &lt;xslutput encoding="ISO-8859-1" indent="yes" method="xml"/&gt;

    &lt;xsl:template match="/"&gt;
    &lt;xsl:apply-templates select="node()"/&gt;
    &lt;/xsl:template&gt;

    &lt;xsl:template match="*"&gt;
    &lt;xsl:choose&gt;
    &lt;xsl:when test="name() = 'MESTYP'"&gt;
    &lt;MESTYP&gt;INVOICE&lt;/MESTYP&gt;
    &lt;/xsl:when&gt;
    &lt;xsltherwise&gt;
    &lt;xsl:element name="{name()}"&gt;
    &lt;xsl:apply-templates select="@*"/&gt;
    &lt;xsl:apply-templates select="node()"/&gt;
    &lt;/xsl:element&gt;
    &lt;/xsltherwise&gt;
    &lt;/xsl:choose&gt;
    &lt;/xsl:template&gt;

    &lt;xsl:template match="@*"&gt;
    &lt;xsl:attribute name="{name()}"&gt;&lt;xsl:value-of select="."/&gt;&lt;/xsl:attribute&gt;
    &lt;/xsl:template&gt;

    &lt;xsl:template match="text()"&gt;
    &lt;xsl:value-of select="."&gt;&lt;/xsl:value-of&gt;
    &lt;/xsl:template&gt;

    &lt;/xsl:stylesheet&gt;

    </pre&gt

    Comment

    Working...
    X