Re: XSLT Anfänger Fragen
Hallo,
XSLT scheint hier das passende zu sein (hab ich bisher noch
nie mit gearbeitet).
eine Einführung zu dem Thema findest in einem Beispielkapitel der XML Bible
"<value field="Name"></value>".
Das ganze soll nachher so aussehen:
"<name></name>".
Kann man das mit XSLT lösen?
ja, wenn du z.B. folgende XML Datei hast
<?xml version="1.0" encoding="UTF-8"?>
<root>
<value name="Name">Wert</value>
<value name="Test">Test-Wert</value>
</root>
Kannst du diese mit folgendem XSL Code
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/root">
<NewRoot>
<xsl:for-each select="value">
<xsl:element name="{@name}">
<xsl:value-of select="."/>
</xsl:element>
</xsl:for-each>
</NewRoot>
</xsl:template>
</xsl:stylesheet>
In diese XML Datei überführen:
<?xml version="1.0" encoding="UTF-8"?>
<NewRoot>
<Name>Wert</Name>
<Test>Test-Wert</Test>
</NewRoot>
Ist es möglich, in das XSLT Manipulationsfunktionen
einzuhängen? Könnte man z.B. sagen, wenn das Feld "PLZ"
gefunden wird, ersetze den Wert mittels einer
selbstgeschriebenen Funktion durch das Bundesland?
XSL alleine könnte das nur über das xsl:choose Element (ist im verlinkten Dokument erklärt). Dazu müsste man aber für jede PLZ eine entsprechende xsl:if Regel definieren, was das XSL Fragment sehr groß und vermutlich inperformant machen würde.
Man kann aber XSL Parser i.d.R. durch eigene Funktionen erweitern. Meine bevorzugte Programmiersprache ist Java, daher kenne ich mich nur da aus. Für den Apache Xalan XSLT Processor ist das hier beschrieben: http://xml.apache.org/xalan-j/extensions.html
HTH
Heavy