Verschachtelte Elemente - was mache ich falsch?

D

DamonWilder

Ich möchte eine XML-Datei mittels XSLT ins Internet stellen. Innerhalb des Textes tauchen Namen auf, die in einer externen php-Datei gespeichert werden. Die Namen in der XML-Datei sollen mit den Namen in der externen php-Datei verlinkt werden. In meiner XML-Datei sieht das folgendermaßen aus:

<p>Die blendende Antithese des <name n ="Simonides"> griechischen Voltaire</name>,
daß die Mahlerey eine stumme Poesie, und die Poesie eine redende Mahlerey sey, stand wohl in keinem Lehrbuche. Es war ein Einfall, wie <name n = "Simonides">Simonides</name> mehrere hatte; dessen wahrer Theil so einleuchtend ist, daß man das Unbestimmte und Falsche, welches er mit sich führet, übersehen zu müssen glaubet.</p>

Da der wirkliche Name nicht zwangsläufig mit dem Namen zwischen dem name-Tag identisch ist, habe ich mittels n-Attribut einen eindeutigen Identifier hinzugefügt.
Auf der html-Seite soll natürlich der Name zwischen dem name-Tag verlinkt sein. Meine entsprechende XSLT-Datei sieht in Auszügen so aus:

<!-- Vorlage für Element p -->
<xsl:template match="p">
<xsl:value-of select="."/>
<xsl:apply-templates select="name"/>
<br />
</xsl:template>

<!-- Vorlage für Element name und Weitergabe des Namen an eine php-Datei,
zur Weiterverarbeitung in einer Datenbank -->
<xsl:template match="name">
<i>
<a href="../php/personenregister.php?name={@n}">
<xsl:value-of select="."/>
</a>
</i>
</xsl:template>

Der Text besteht aus mehreren <p>-Elementen hintereinander. Wenn ich die XML-Datei im Browser aufrufe, dann wird der Name innerhalb des Textes ganz normal (d.h. nicht kursiv und nicht verlinkt) dargestellt und am Ende des jeweiligen Absatzes (d.i. <p>) erscheint nun nochmals der Name mit Verlinkung.

Was mache ich falsch?
 

Neue Beiträge

Zurück