Kai: Externes Stylesheet

Hallo,

ich möchte mein xml über eine Transformation (über Java) in eine anderes xml konvertieren. das mache ich folgendermaßen:

TransformerFactory tFactory    = TransformerFactory.newInstance();
Transformer        transformer = tFactory.newTransformer(new StreamSource(args[1]));
transformer.transform(new StreamSource(args[0]), new StreamResult(new FileOutputStream(args[2]));

args[0] ist hierbei die Eingabe-XML-Datei
args[1] ist das Stylesheet
args[2] die Ausgabe-XML-Datei

Ich habe in dem Stylesheet (nenne es mal test.xsl damit man weiß von welchem Stylesheet ich spreche) ein externes Stylesheet, wo nur Variablen definiert sind.

das externe Stylesheet ist folgendermaßen aufgebaut:

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:variable name="v1">Title</xsl:variable>
<xsl:variable name="v2">List</xsl:variable>
<xsl:variable name="v3">Help</xsl:variable>
</xsl:stylesheet>

Ich möchte in test.xsl den Wert einer Variable zusammensetzen, der dann dem Attribut name im externen Stylesheet entsprechen soll, um dann den Inhalt auszulesen, d.h. also in test.xsl den Wert der Variable auf "v1" zB bestimmen und dann "Title" zurückzubekommen.

Hier der bisher entsprechende Teil aus der test.xsl:

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" encoding="iso-8859-1" version="1.0" indent="yes" omit-xml-declaration="no"/>

<xsl:import href="info.xsl"/>

<xsl:template match="/">
    <xsl:apply-templates select="*"/>
  </xsl:template>

<xsl:template match="TEST">
    <mod>
      <xsl:apply-templates select="*"/>
    </mod>
  </xsl:template>

<xsl:template match="HEAD">
    <xsl:variable name="vAkt" select="/TEST/DMN/@DN"/>
    <xsl:variable name="vInfo" select="concat('$v',substring($vAkt,2,1))"/>
    <status>
      <addres>
        <title>
          <info><xsl:copy-of select='$vInfo'/></info>
        </title>
      </addres>
    </status>
  </xsl:template>
</xsl:stylesheet>

Nur schreibt er mir in die transformierte XML-Datei immer den Wert der Variablen vInfo, aber ich möchte doch den Inhalt der Variablen aus der externen Datei. Wenn ich den zusammengesetzten String per Hand eintrage, also <xsl:variable name="vInfo" select="v1"/> dann macht ers richtig, aber so nicht.

Ich hoffe ihr versteht mein Problem und könnt mir helfen. Sonst muss ichs wohl über Java machen :(
Grüße
Kai

  1. @@Kai:

    Hättest du bei deinem Posting gleich das richtige Themengebiet XSL angegeben, hätte es einer der fachkundigen Thomase sicher besser gefunden.

    Mit CSS hat dein Problem rein gar nchts zu tun.

    Live long and prosper,
    Gunnar

    --
    „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
    1. » @@Kai:

      Hättest du bei deinem Posting gleich das richtige Themengebiet XSL angegeben, hätte es einer der fachkundigen Thomase sicher besser gefunden.

      Mit CSS hat dein Problem rein gar nchts zu tun.

      Live long and prosper,
      Gunnar

      Blöderweise hatte ich XSL nicht gesehen :O Dachte irgendwie nach Javascript gehts nicht weiter *totalÜbersehenHab*, dass man da noch weiter runterscrollen kann

      Echt dumm von mir gewesen :(
      LG Kai