[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: problem while processing external document

Subject: RE: problem while processing external document
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 3 Mar 2005 15:11:31 -0000
verpflegungsmehraufwand
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.Klocker@xxxxxxxxxxxxx]
> Sent: 03 March 2005 13:02
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject:  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 Mineralvl 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()='VStZB']]
> [substring-after(verweis/artikel/fundstelle,'/')=current()/../
> ../nummer]">
>
> <xsl:for-each select="stichwort[@verwendung='VStZB_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>Nichtabzugsfdhigkeit des Arbeitszimmer eines
> Rechtsanwaltes im
>         Wohnungsverband als Zweitkanzlei und f|r die Vorbereitung von
>         Vortragstdtigkeit</satz>
> 	<verweis>
> 		<entscheidung>
> 			<stelle>VwGH</stelle>
> 			<datum>2003-07-03</datum>
> 			<geschaeftszahl>99/15/0177</geschaeftszahl>
> 		</entscheidung>
> 	</verweis>
> 	<verweis>
> 		<artikel>
> 			<zeitschrift>VStZB</zeitschrift>
> 			<fundstelle>2004/291</fundstelle>
> 		</artikel>
> 	</verweis>
> 	<stichwort verwendung="VStZB_Steuerindex">
> 		<hauptstichwort>Arbeitszimmer</hauptstichwort>
> 		<substichwort>Rechtsanwalt</substichwort>
> 		<subsubstichwort>als Zweitkanzlei und Vorbereitung f|r
>           Vortragstdtigkeit</subsubstichwort>
> 	</stichwort>
> </eintrag>
> <eintrag absatz="2" paragraph="2">
> 	<satz>Innerbetrieblicher Verlustausgleich mit nicht beg|nstigtem
>         Verdu_erungsgewinn, auch wenn dieser zeitlich nach
> einem mit dem
>         ermd_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>VStZB</zeitschrift>
> 			<fundstelle>2004/354</fundstelle>
> 		</artikel>
> 	</verweis>
> 	<stichwort verwendung="VStZB_Steuerindex">
> 		<hauptstichwort>Verlustausgleich</hauptstichwort>
> 		<substichwort>innerbetrieblicher</substichwort>
> 		<subsubstichwort>au_erordentliche
> Eink|nfte</subsubstichwort>
> 	</stichwort>
>
> </eintrag>

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.