XML-Technologien
Posts 1-3 of 3
-
Natalia LyundyshevaThe company name is only visible to registered members.Attributname in einer Variable übergeben
Hallo,
hat jemand eine Idee, wie man den Attributnamen mit einer Variable übergeben kann?
Folgende Code gibt leider bei der Transformation eine Fehlermeldung (Erwartet wird QName)aus:
<xsl:attribute name="{$merkmal}"><xsl:value-of select="$value"/></xsl:attribute>
Vielen Dank!
Natalia
- 15 Feb 2011, 10:29 am
-
Peter-Josef MeischThe company name is only visible to registered members.Re: Attributname in einer Variable übergeben
Hallo Natalia,
das sollte prinzipiell gehen. Ich habe gerade mal das folgende Primitivbeispiel getestet:
test.xml:
<?xml version="1.0" encoding="UTF-8"?>
<attribut>einAttribut</attribut>
test.xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="
http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml"/>
<xsl:template match="/">
<xsl:variable name="attrName"><xsl:value-of select="."></xsl:value-of></xsl:variable>
<EinTag>
<xsl:attribute name="{$attrName}">mitWert</xsl:attribute>
</EinTag>
</xsl:template>
</xsl:stylesheet>
das Ganze in Java 6 folgendermassen verarbeitet:
import java.io.File;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
public class TransformationTest {
public static void main(String[] args) {
try {
Transformer transformer = TransformerFactory.newInstance().newTransformer(new StreamSource("test.xsl"));
transformer.transform(new StreamSource(new File("test.xml")), new StreamResult(System.out));
} catch (Throwable t) {
t.printStackTrace();
}
}
}
erzeugt auf meinem Rechner die Ausgabe:
<?xml version="1.0" encoding="UTF-8"?><EinTag einAttribut="mitWert"/>
Das Ganze mit den Standardklassen, die bei Mac-Java 6 dabei sind. Ich weiss nicht ob diese Antwort wirklich hilft, aber zumindest die Info, dass die Syntax korrekt ist, könnte bei der weiteren Suche helfen.
Viele Grüße
Peter
- 15 Feb 2011, 4:40 pm
-
Post visible to registered members
