Thanks, I will give it a try.
/christoph
-----Ursprüngliche Nachricht-----
Von: Michael Kay [mailto:mike(_at_)saxonica(_dot_)com]
Gesendet: Donnerstag, 3. März 2005 16:12
An: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Betreff: RE: [xsl] problem while processing external document
In XSLT 1.0, or in XSLT 2.0 when the stylesheet specifies version="1.0", the
expression
substring-after(verweis/artikel/fundstelle,'/')
converts the node-set verweis/artikel/fundstelle to a string by taking the
string-value of the first node in the node-set, and ignoring the others.
If you change the stylesheet to say version="2.0", then an XSLT 2.0
processor will report this as an error. You can then change the expression
to what I expect you meant:
[some $x in verweis/artikel/fundstelle satisfies
substring-after($x, '/') = current()/../../nummer]
or more concisely, but not supported until Saxon 8.3:
[verweis/artikel/fundstelle/substring-after(., '/') =
current()/../../nummer]
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Klocker Christoph
[mailto:Christoph(_dot_)Klocker(_at_)lexisnexis(_dot_)at]
Sent: 03 March 2005 13:02
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] problem while processing external document
Hi
I have a problem where I can't find an answer for it.
I have an xml file with several of these "artikel" elements
<artikel>
<nummer>122</nummer>
<heft>6</heft>
<seite>152</seite>
<erkenntnis>
<stelle>VwGH</stelle>
<datum>29.10.2003</datum>
<gz gz-jahr="2003" stelle="VwGH">2003/13/0033</gz>
</erkenntnis>
<iv-eintrag>
<gesetztesstelle>EStG 1988 § 16 Abs 1 Z 9, § 26 Z
4</gesetztesstelle>
<beschreibung>Keine Differenzreisekosten für
Verpflegungsmehraufwand eines an die Tankstellen in einem
politischen Bezirk Mineralöl liefernden Lkw-Lenkers</beschreibung>
<stichwort></stichwort>
</iv-eintrag>
</artikel>
I process this file with this stylesheet
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:template match="node()| @*">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="stichwort">
<xsl:for-each
select="document('Steuerindex2004-7.xml')//eintrag[.//verweis/
artikel/zeitschrift[text()='ÖStZB']]
[substring-after(verweis/artikel/fundstelle,'/')=current()/../
../nummer]">
<xsl:for-each select="stichwort[(_at_)verwendung='ÖStZB_Steuerindex']">
<xsl:copy>
<xsl:if test="hauptstichwort">
<xsl:element name="haupt">
<xsl:value-of
select="normalize-space(hauptstichwort)"/>
</xsl:element>
</xsl:if>
<xsl:if test="substichwort">
<xsl:element name="sub">
<xsl:value-of
select="normalize-space(substichwort)"/>
</xsl:element>
</xsl:if>
<xsl:if test="subsubstichwort">
<xsl:element name="subsub">
<xsl:value-of
select="normalize-space(subsubstichwort)"/>
</xsl:element>
</xsl:if>
</xsl:copy>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
For every empty <stichwort> I look up in the
Steuerindex2004-7.xml to get all of the <hauptstichwort>,
<substichwort> <subsubstichwort>.
The Problem I have, It works fine, if I have no second
<verweis> element, like the first <eintrag>. The second
however doesn't work. If I remove the "<verweis>
<artikel><zeitschrift>ARD</zeitschrift><artikel><verweis>"
element or put it on second place it works fine!!
I am using saxonb8.2.
/christoph
The file 'Steuerindex2004-7.xml looks like this:
<eintrag absatz="1" paragraph="20" z_litera="d" ziffer="2">
<satz>Nichtabzugsfähigkeit des Arbeitszimmer eines
Rechtsanwaltes im
Wohnungsverband als Zweitkanzlei und für die Vorbereitung von
Vortragstätigkeit</satz>
<verweis>
<entscheidung>
<stelle>VwGH</stelle>
<datum>2003-07-03</datum>
<geschaeftszahl>99/15/0177</geschaeftszahl>
</entscheidung>
</verweis>
<verweis>
<artikel>
<zeitschrift>ÖStZB</zeitschrift>
<fundstelle>2004/291</fundstelle>
</artikel>
</verweis>
<stichwort verwendung="ÖStZB_Steuerindex">
<hauptstichwort>Arbeitszimmer</hauptstichwort>
<substichwort>Rechtsanwalt</substichwort>
<subsubstichwort>als Zweitkanzlei und Vorbereitung für
Vortragstätigkeit</subsubstichwort>
</stichwort>
</eintrag>
<eintrag absatz="2" paragraph="2">
<satz>Innerbetrieblicher Verlustausgleich mit nicht begünstigtem
Veräußerungsgewinn, auch wenn dieser zeitlich nach
einem mit dem
ermäßigten Steuersatz nach § 37 Abs 1 idF vor dem
SteuerreformG 1993
zu besteuernden Übergangsgewinn aus dem Wechsel der
Gewinnermittlungsart entstanden ist</satz>
<verweis>
<entscheidung>
<stelle>VwGH</stelle>
<datum>2004-02-24</datum>
<geschaeftszahl>99/14/0250</geschaeftszahl>
</entscheidung>
</verweis>
<verweis>
<artikel>
<zeitschrift>ARD</zeitschrift>
<fundstelle>5505/12/2004</fundstelle>
</artikel>
</verweis>
<verweis>
<artikel>
<zeitschrift>ÖStZB</zeitschrift>
<fundstelle>2004/354</fundstelle>
</artikel>
</verweis>
<stichwort verwendung="ÖStZB_Steuerindex">
<hauptstichwort>Verlustausgleich</hauptstichwort>
<substichwort>innerbetrieblicher</substichwort>
<subsubstichwort>außerordentliche
Einkünfte</subsubstichwort>
</stichwort>
</eintrag>
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--