Erzeugen eines Elements mit einem Namespace
Rafael
- xsl
Guten Abend
ich versuche derzeit eine XML-Datei ins RDF-Format umzuwandeln. Das klappt aber nicht so ganz:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns="http://www.myhouse.de/" >
<xsl:template match="/">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<xsl:for-each select="/Projekt/Person/" />
<xsl:variable name="name" select="replace(personname, ' ', '')" />
<xsl:element name="ns:{$name}">
asasd
</xsl:element>
</rdf:RDF>
</xsl:template>
</xsl:stylesheet>
Ich hab das mal vereinfach gezeigt. Jetzt möche ich gernde als Ergebnis das Element ns:DanielMeyerasasd</ns:DanielMeyer> usw. haben. Saxon 9 sagt mir nun aber "Invalid element name. QName cannot end with {ns:}."
Kann mir hier jemand sage, was das bedeutet? Ich find einfach nicht die Lösung. Ich seh es einfach nicht.
Gruß
Daniel
Hallo Daniel,
Ich hab das mal vereinfach gezeigt. Jetzt möche ich gernde als Ergebnis das Element ns:DanielMeyerasasd</ns:DanielMeyer> usw. haben. Saxon 9 sagt mir nun aber "Invalid element name. QName cannot end with {ns:}."
$name ist bei Dir leer ("ns:{$name}" evaluiert bei Dir zu "ns:", das besagt die Fehlermeldung) - sicher, dass Dein XPath-Ausdruck für die Variable $name korrekt ist? Lass Dir die mal ausgeben...
Viele Grüße,
Christian
Vielen Dank.
Es lag einem doppelten Namespace. Ich hab es übergeben und habe dann ns:ns:name gehabt.
Ich wuerde an deiner Stelle aber trotzdem das xsl:element sauber schreiben
<xsl:element name="{$name}" namespace="http://www.myhouse.de/">
assad
</xsl:element>
Gruss, H.