XSLT Variable als eine Art Array?

chaertl

Grünschnabel
Hallo Zusammen,

hänge die ganze Zeit an einem Problem und es fallen mir ständig neue Ansätze ein. Leider hapert es immer an der Umsetzung. Und da ich in XSLT immer noch recht unerfahren bin und bis jetzt nichts passendes im Internet gefunden habe, hoffe ich dass mir hier jemand helfen kann.

Hier mein Problem:
Ich baue mir zwei Variablen auf, die auch mit den richtigen Werten gefüllt werden. Durch diese Variablen möchte ich dann innerhalb einer ForEach-Schleife wie bei einem Array iterieren.
Code:
<xsl:variable name="actual">
                <Machine_Manufacturer><xsl:value-of select="Machine_Manufacturer"/>
</Machine_Manufacturer>
                <Machine_Class><xsl:value-of select="Machine_Class"/></Machine_Class>
                <Machine_Type><xsl:value-of select="Machine_Type"/></Machine_Type>
</xsl:variable>
<xsl:variable name="previous">
                 <Machine_Manufacturer><xsl:value-of select="preceding-sibling::*[position()=1]/Machine_Manufacturer"/></Machine_Manufacturer>
                 <Machine_Class><xsl:value-of select="preceding-sibling::*[position()=1]/Machine_Class"/></Machine_Class>
                 <Machine_Type><xsl:value-of select="preceding-sibling::*[position()=1]/Machine_Type"/></Machine_Type>
</xsl:variable>

Wie kann ich es hinbekommen, dass dies wie bei einem Array funktioniert und ich immer von einem Element zum nächsten komme, d.h. im ersten Durchlauf möchte ich auf das Element Machine_Manufacturer zugreifen, im nächsten auf Machine_Class usw.
Ich hab das mal so ausprobiert:<Test><xsl:value-of select="actual/[position()=i"/></Test>
Nur bekomme ich bei diesem Statement den kompletten Inhalt der Variable $actual und nicht den ersten Wert.
Muss ich die beiden Variablen evtl. ganz anders definieren? Oder steuer ich die Elemente einfach nur verkehrt an?

Wenn mir da jemand einen Rat hätte wäre ich sehr dankbar. Wenn das Problem nicht kalr wird bitte auch melden, dann versuch ich es verständlicher zu machen.

Gruß
Christian
 
N'Abend,
chaertl hat gesagt.:
Ich hab das mal so ausprobiert:<Test><xsl:value-of select="actual/[position()=i"/></Test>
Nur bekomme ich bei diesem Statement den kompletten Inhalt der Variable $actual und nicht den ersten Wert.
Wenn du die Kinder des actual-Element haben willst, dann solltest du auch die Kinder adressieren und nicht das actual-Element selbst. In deinem Fall wäre das dann
Code:
<Test><xsl:value-of select="actual/*[position()=i"/></Test>
hth
THMD
 
Zurück