Subject: AW: [xsl] problem while processing external document From: "Klocker Christoph" <Christoph.Klocker@xxxxxxxxxxxxx> Date: Thu, 3 Mar 2005 16:17:51 +0100 |
Thanks, I will give it a try. /christoph -----Urspr|ngliche Nachricht----- Von: Michael Kay [mailto:mike@xxxxxxxxxxxx] Gesendet: Donnerstag, 3. Mdrz 2005 16:12 An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx 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.Klocker@xxxxxxxxxxxxx] > Sent: 03 March 2005 13:02 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > 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 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
AW: [xsl] problem while processing , Klocker Christoph | Thread | [xsl] a sorting conundrum, John Fitzgibbon |
RE: [xsl] Realising when you hit th, Kirkham, Pete (UK) | Date | RE: [xsl] Problem with converting t, Michael Kay |
Month |