Hallo,
Wie müsste dann das Script lauten um z.B.
<FNAME>artikelnr</FNAME>
<FVALUE>test csv</FVALUE>
auszulesen? (also des wert test csv)Ich finde im Internet keine andere Möglichkeit die XML zum CSV kompatibel zu machen. Müsste also aus der XML die nötigen Werte auslesen.
Zwei Dinge muss du berücksichtigen:
- dass du immer den richtigen Pfad brauchst
- in diesem Fall, dass du im XML einen default-Namesraum hast, damit kann XSL 1.0 nicht so gut umgehen, daher muss du also dafür sorgen, dass er disen Namensraum auch kennt.
-----------
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:bm="http://www.bmecat.org/bmecat/1.2/bmecat_new_catalog" exclude-result-prefixes="bm">
<xsl:output method="text" />
<xsl:template match="/">
<xsl:apply-templates select="bm:BMECAT/bm:T_NEW_CATALOG" />
</xsl:template>
<xsl:template match="bm:T_NEW_CATALOG">
<xsl:value-of select="bm:ARTICLE/bm:ARTICLE_FEATURES/bm:FEATURE[bm:FNAME = 'artikelnr']/bm:FVALUE" />;
<xsl:value-of select="bm:ARTICLE/bm:ARTICLE_DETAILS/bm:DESCRIPTION_LONG" />;
xsl:text
</xsl:text>
</xsl:template>
</xsl:stylesheet>
---------
Du kannst statt dem Prefix "bm" irgendwas nehmen, "x" "foo", "bar", "blabla", es ist egal, nur musst du deine Elemente dann im XSL _immer_ mit diesem Prefix schreiben. Wenn du mal keine Ausgabe wie erwartet bekommst, überprüfe zuerst ob du nicht irgendwo ein Prefix vergessen hast.
Grüße
Thomas