Christian Seiler: Kann man mit XSL eine XML aufrufen?

Beitrag lesen

Hallo,

Ist es auch möglich ein Layout zu öffnen, welches dann die XML-Daten aus der XML Datei holt?

Es gibt in XPath document() und document-available() - sprich sowas wie <xsl:variable name="meindok" select="document('http://example.org/foo.xml')" /> und dann ein <xsl:value-of select="$meindok//ElementName" /> ist möglich.

Das Ziel wäre, mit XSL Abfragebedingungen die XML-Daten zu filtern, also z. B. nur mit Geschlecht "frau" die Daten auszulesen in dem einen Layout, auf einem anderen Layout (XSL-File) nur Datensätze mit Geschlecht "mann".

Es soll keine XML-Dateninsel sein, da es für IE und Mozialla Browser kompatibel sein muss und es kann kein Webserver verwendet werden.

Dann dürfte die einfachste Lösung sein, dass Du einfach 3 XML-Dateien und 2 XSL-Stylesheets erstellst:

1. XML-Datei: Deine eigentlichen Daten. Nennen wir sie mal 'daten.xml' Dort
   KEIN XSL-Aufruf (wobei das egal wäre, der wird ignoriert)
2. XML-Datei: Eine leere XML-Datei, die nichts anderes tut, als Deine 1. XSL
   aufzurufen
3. XML-Datei: Eine leere XML-Datei, die nichts anderes tut, als Deine 2. XSL
   aufzurufen
4./5.: Die Beiden XSL-DAteien

Die XSL-Dateien hätten dann die Besonderheit, dass überall statt select="//foo" halt select="document('daten.xml')//foo" stünde oder wenn's vorher in einer Variable war halt select="$var//foo".

Wenn Du normale XSLT-Prozessoren hättest, wäre es kein Problem, jeweils andere Stylesheets direkt auf XML-Dateien loszulassen, da Du im Browser aber XSLT nur in Verbindung mit XML-Dateien nutzen kannst (zumindest meines Wissens) ist's halt etwas umständlicher.

Ich hoffe, Dir ist ungefähr klar, was ich meine.

Viele Grüße,
Christian