Hallo allseits,
ich bin bereits ziemlich verzweifelt wegen XSLT ... dazu muss ich sagen, dass ich keine Erfahrung darin habe, und mich nebenbei durch die Tutorials auf w3schools durchkaempfe, aber dennoch nicht weiterkomme ,,,
Konkret hab ich ein XML welches wie folgt aufgebaut ist (Nur auszugsweise) :
Rausbekommen will ich ein Textfile, in dem untereinander alle "home"-Attribute stehen, also
===
SOURCENAME1
SOURCENAME2
SOURCENAME3
===
sonst nichts.
Nach langem rumspielen mit dem XSL sah es im vorletzten Versuch so aus:
Die Ausgabe nach der Transformation sah eigentlich schon ganz gut aus, und zwar so:
Also hab ich im nächsten Testlauf das überflüssige "TEST" aus obigem XSL entfernt, das sieht dann also so aus:
Danach sieht die Ausgabe plötzlich so aus:
*seufz*
Irgendwie schaffe ich es nicht, dass mir hier wirklich Zeile für Zeile ausgegeben wird. Ach ja, alle Versuche den Pfad gleich beim "template match" anzugeben, scheiterten auch. Da hatte ich dann unzählige Versuche wie "<xsl:template match="model/sources/source">, aber da hat er dann entweder gar nichts, oder überhaupt "Mist" ausgegeben. Aber das nur nebenbei.
Könnte mir da bitte jemand weiterhelfen bzw. auf die Sprünge helfen, was ich da falsch mache? Danke!
LG., mne
ich bin bereits ziemlich verzweifelt wegen XSLT ... dazu muss ich sagen, dass ich keine Erfahrung darin habe, und mich nebenbei durch die Tutorials auf w3schools durchkaempfe, aber dennoch nicht weiterkomme ,,,
Konkret hab ich ein XML welches wie folgt aufgebaut ist (Nur auszugsweise) :
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<model docowner="bla" footertext="blubb" name="Name">
<atts>
<att requestby="" length="12" type="numeric" name="partnerid" />
<att requestby="" length="8" type="date" name="date" />
</atts>
<sources>
<source home="SOURCENAME1" name="Name1" />
<source home="SOURCENAME2" name="Name2" />
<source home="SOURCENAME3" name="Name3" />
</sources>
</model>
Rausbekommen will ich ein Textfile, in dem untereinander alle "home"-Attribute stehen, also
===
SOURCENAME1
SOURCENAME2
SOURCENAME3
===
sonst nichts.
Nach langem rumspielen mit dem XSL sah es im vorletzten Versuch so aus:
Code:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="text" indent="no" />
<xsl:template match="/">
<xsl:for-each select="model/sources/source">
TEST
<xsl:value-of select="@home" />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Die Ausgabe nach der Transformation sah eigentlich schon ganz gut aus, und zwar so:
Code:
TEST
SOURCENAME1
TEST
SOURCENAME2
TEST
SOURCENAME3
Also hab ich im nächsten Testlauf das überflüssige "TEST" aus obigem XSL entfernt, das sieht dann also so aus:
Code:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="text" indent="no" />
<xsl:template match="/">
<xsl:for-each select="model/sources/source">
<xsl:value-of select="@home" />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Danach sieht die Ausgabe plötzlich so aus:
Code:
SOURCENAME1SOURCENAME2SOURCENAME3
*seufz*

Irgendwie schaffe ich es nicht, dass mir hier wirklich Zeile für Zeile ausgegeben wird. Ach ja, alle Versuche den Pfad gleich beim "template match" anzugeben, scheiterten auch. Da hatte ich dann unzählige Versuche wie "<xsl:template match="model/sources/source">, aber da hat er dann entweder gar nichts, oder überhaupt "Mist" ausgegeben. Aber das nur nebenbei.
Könnte mir da bitte jemand weiterhelfen bzw. auf die Sprünge helfen, was ich da falsch mache? Danke!
LG., mne