ker: XML Ausgabe ohne <

Hallo,

habe mal ne Frage:Wie kann ich in der XML Ausgabe die Zeichen &lt; durch < und &gt; durch > ersetzen?

Mein Stylesheet arbeitet mit einer Java-Funktion, die mir verschiedene Daten aus einer Datenbank ermittelt. Diese Daten sind in einer Liste und jedes Element dieser Liste soll in einen XML-Tag eingebettet sein.

Beispiel:
<!-- Abfrage -->
<xsl:variable name="test1" select="my-finder:getvorname("Müller")"/>

<!-- Liste in Java -->
[Max,Franz,Elli]

<!-- in XML -->
<Vorname>Max</Vorname>
<Vorname>Franz</Vorname>
<Vorname>Elli</Vorname>

Die Funktion wird wie folgt in das Styesheet integriert:

<Person>
<Name>Müller</Name>
<xsl:value-of select="$test1"/>
</Person>

Nun habe ich aber das Problem, das mir nicht <Vorname> sondern &lt;Vorname&gt; ausgegeben wird. Da die Ausgabe aber wiederum weiterverarbeitet werden soll, müssen die Zeichen &lt; in < und &gt; in > dargestellt sein.

Wie bekomme ich das hin das die Zeichen < und > ausgegeben werden, oder kann ich die Liste [Max,Franz,Elli] mit einer Schleife (xsl:for) bearbeiten und in die benötigte Form bringen?
Den rekursiven Templateansatz habe ich auch schon versucht, funktioniert aber in diesem Zusammenhang nicht.

Vielen Dank im voraus!

  1. Hallo Ker,

    <xsl:variable name="test1" select="my-finder:getvorname("Müller")"/>
    <xsl:value-of select="$test1"/>

    Erste ungetestete† Idee:
    <xsl:value-of select="$test1" disable-output-escaping="yes"/>

    Zweite ungetestete† Idee:
    xsl:value-of/ ist explizit dafür da, Text in ein Dokument auszugegen, wenn es XML-Elemente (eine Knotenmenge) kriegt, werden diese implizit zu Text umgewandelt. Besser wär es wohl, direkt die Elemente mit xsl:copy-of/ in das Resultatdokument zu kopieren, anstatt einen Umweg über Text zu gehen. Da wäre disable-output-escaping auch nicht mehr notwendig. Die Voraussetzung wäre natürlich, dass my-finder:getvorname() auch eine Knotenmenge zurück gibt und keinen String. Das läge dann aber im der Verantwortung der Kaffeebohne.

    Tim

    --
    † Ich bin etwas eingerostet in XSLT-Dingen. Mag mich jemand verbessern?
    1. Hallo Tim,
      Super, die erste Idee funktioniert!
      Vielen Dank!