- xpath / document()
ulli
- xsl
0 Thomas J.S.0 ulli0 Thomas J.S.0 ulli
0 ulli
hi euch all
wie kann ich aus xsl mittels document auf andere xml documente zugreifen und aus diesen bestimmte inhalte auslesen ...
zB ich hab eine xsl datei, die mir eine tabelle zusammenbastelt und möchte bei der abarbeitung auf eine andere xml quelle (wo zB informationen über die styles, die verwendet werden sollen stehen) zugreifen ... die auswahl treffe ich über xsl:choose
xsl:choose
<xsl:when test="$layout=1">
<xsl:variable name="layout1" select="document(...)" /> <- hier brauch ich hilfe
</xsl:when>
<xsl:when test="$layout=2">
.
.
.
</xsl:choose>
... und die variable layout1 wird dann zB dafür genommen, um die bgcolor einer tabelle anzupassen ...
danke für eure antworten
ulli
Hallo,
<xsl:variable name="layout1" select="document(...)" /> <- hier
select="document(../pfad/datei.xml)/root/element/element"
Mit document(datei.xml) erhältst du einen Knoten zurück: nämlich das Wurzelelement der XML-Datei das dann alle anderen Elemente beinhaltet, so kannst du dann normal mit XPaht in der Hierarchie weitergehen.
Grüße
Thomas
PS: im Archiv gibts auch schon viele Beispile mit document()
Hallo,
hi thomas
danke für die antwort ...
Grüße
ThomasPS: im Archiv gibts auch schon viele Beispile mit document()
echt? dann muss ich mir eingestehen, dass ich nicht suchen kann ... hab nämlich vorher (so wie es sich gehört :) ) im archiv gesucht aber nichts gefunden ... naja wie auch immer ... bis dann
ulli
Hallo ulli,
PS: im Archiv gibts auch schon viele Beispile mit document()
echt? dann muss ich mir eingestehen, dass ich nicht suchen kann ... hab nämlich vorher (so wie es sich gehört :) ) im archiv gesucht aber nichts gefunden ... naja wie auch immer ... bis dann
schau dir die Quellcodes in den Beiträgen an:
http://forum.de.selfhtml.org/archiv/2002/3/7685/#m42840
http://forum.de.selfhtml.org/archiv/2002/5/11707/#m64889
http://forum.de.selfhtml.org/archiv/2002/6/14025/
http://forum.de.selfhtml.org/archiv/2002/9/23078/#m128368
http://forum.de.selfhtml.org/archiv/2003/4/42754/#m234715 etc.
Grüße
Thomas
Hallo ulli,
re hi
danke für die links ... hab schon gefunden, was mir gefehlt hat ... nämlich: die '' um den link also ...document('../xml/layout.xml')/...
Grüße
Thomas
cya ulli
Hallo,
hi
es scheint aber nicht zu funzen ..
die xml datei(die, die eingebunden werden soll):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DATA>
<LAYOUT id="0">
<TABELLE>
<tabBg>#99cc99</tabBg>
</TABELLE>
</LAYOUT>
<LAYOUT id="1">
</LAYOUT>
</DATA>
... ich möchte zB an tabBg ran ...
und das xsl sheet:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1" />
<xsl:param name="layout" />
<xsl:template match="/">
<table style="position:relative;top:0px;left:0px" height="135px" cellpadding="30" cellspacing="0" width="100%" border="0">
<xsl:attribute name="bgcolor">
<xsl:value-of select="document(../xml/layout.xml)/DATA/LAYOUT[@id=$layout]/TABELLE/tabBg" />
</xsl:attribute>
<tr><td valign="bottom">
</td></tr>
</table>
aber es steht nichts im bgcolor attribut drin ...
Hallo,
es scheint aber nicht zu funzen ..
<xsl:param name="layout" />
<xsl:value-of select="document(../xml/layout.xml)/DATA/LAYOUT[@id=$layout]/TABELLE/tabBg" />
Wie hast du denn den Paramter übergegeben? Wie machst du die Verarbeitung? Normalerweise übergibt man den Paramter in der URL (z.B. http://domain.de/transformierexml.jsp?layout=0 jsp ist hier nur als Beispiel genannt), aber wenn du deine XML/XSL Transformation clientseitig machst, kannst du das leider vergessen, denn die Browser selbst können das nicht.
Grüße
Thomas