ThomasM: XML wandeln in ASCII

Beitrag lesen

Hallo ciddy77,

  • <FIELDS>
  • <!--  Definitionen der exportierten Felder
      -->
      <FIELD attrname="AUFTRAGSSTATUS" fieldtype="string" WIDTH="6" />
      ...

Vermutlich sollen die FIELD-Namen die Spalten bilden und die Attribute der ROW-Elemente die einzelnen Daten. Dann passt formal diese Transformation:

<?xml version="1.0" encoding="ISO-8859-1"?>  
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
  
  <xsl:output method="text" encoding="ISO-8859-1"/>  
  
  <xsl:template match="DATAPACKET">  
  
  <xsl:for-each select="METADATA/FIELDS/FIELD">  
    <xsl:value-of select="@attrname"/>  
    <xsl:choose>  
      <xsl:when test="position()!=last()">  
        <xsl:text>;</xsl:text>  
      </xsl:when>  
      <xsl:otherwise>  
        <xsl:text>&#xA;</xsl:text>  
      </xsl:otherwise>  
    </xsl:choose>  
  </xsl:for-each>  
  
  <xsl:for-each select="ROWDATA/ROW/@*">  
    <xsl:value-of select="."/>  
    <xsl:choose>  
      <xsl:when test="position()!=last()">  
        <xsl:text>;</xsl:text>  
      </xsl:when>  
      <xsl:otherwise>  
        <xsl:text>&#xA;</xsl:text>  
      </xsl:otherwise>  
    </xsl:choose>  
  </xsl:for-each>  
  
  </xsl:template>  
  
</xsl:stylesheet>

mit dem Ergebnis:

AUFTRAGSSTATUS;AUFTRAGSART;EUROBETRAG;...
OK;RE;113,82;...

Zur Umsetzung bieteten sich XSLT-Prozessoren wie u. a. Saxon oder AltovaXML an.

Grüße,
Thomas