Hallo!
ich bin schier am Verzweifeln. Ich möchte nämlich folgendes XML-Konstrukt
<linkliste>Begriff
<link uri="abc">ABC</link>
<link uri="def">DEF</link>
<link uri="ghi">GHI</link>
</linkliste>
> in ungefähr so ein HTML-Konstrukt
> ~~~html
> <span>Begriff
> <span class="LinkListe">
> <a href="abc">ABC</a>
> <a href="def">DEF</a>
> <a href="ghi">GHI</a>
> </span>
> </span>
>
umwandeln. Ich finde aber keinen Weg, mit XSLT "Begriff" zu isolieren.
<xsl:value-of select="text()" />
im Kontext der linkliste-Node.
Als kurzes Merkblatt für sowas:
node() matcht jeden Knoten
text() matcht jeden Textknoten (auch <![CDATA[ ]]>)
* matcht jedes Element
foo matcht ein Element namens 'foo'
processing-instruction() matcht jede PI (<?...?>)
processing-instruction(xml-stylesheet) matcht jede PI, deren Typ
xsl-stylesheet ist (d.h. <?xml-stylesheet ...?>)
comment() matcht jedes Kommentar (allerdings darf ein XML-Parser
Kommentare wegwerfen, d.h. man sollte sich nicht darauf verlassen)
Ich frage mich jedoch, ob Dein XML-Datenmodell wirklich ideal ist, ich würde ja eher so etwas machen wollen:
<linkliste>
<begriff>Begriff</begriff>
<link uri="abc">ABC</link>
...
</linkliste>
Dann ist sowas nämlich strukturell eindeutig und Du kannst z.B. per DTD forcieren, dass das Inhaltsmodell von linkliste sowas sein soll wie (begriff, link+) - wenn du PCDATA innerhalb von linkliste erlaubst, wäre auch folgendes ein gültiges Dokument nach der DTD, auch wenn es relativ sinnlos wäre:
<linkliste>
<link uri="abc">ABC</link>
Begriff
<link uri="def">DEF</link>
...
</linkliste>
Mein obiges XSLT würde natürlich auch hier "Begriff" korrekt isolieren (vmtl. müsstest Du aber auch noch normalize-space() darauf anwenden, um überflüssige Leerzeichen loszuwerden), aber sehr sinnvoll erscheint's mir trotzdem nicht.
Viele Grüße,
Christian