Subject: AW: [xsl] use preceding element or self From: "Klocker Christoph" <Christoph.Klocker@xxxxxxxxxxxxx> Date: Fri, 29 Apr 2005 12:52:43 +0200 |
Does xmlspy do xpath2? yes, it has an xpath2 evaluator. Also you've dropped (.| from the beginning of the expression so uou are just testing preceding siblings, not the current node, in which case you can more simply write had a choose to check this, quite nicer your version with (.| > Seems to be a Saxon issue. Hmm 99 times out of 100 I'd believe saxon (especially if 8.4 gives the same result) Can you make a smaller example (6 or 7 line) and a small complete stylesheet that does the wrong thing? and post the input and output you get? Switched to 8.4 now. Seems it works partly now at least. Have a look at my output: for the last two it seems to work, not for the first two however. Output: <?xml version="1.0" encoding="UTF-8"?> <test xmlns:xs="http://www.w3.org/2001/XMLSchema"> <part> <kundenkategorie>EINKOMMENSTEUER ' 3 Abs 1 Z 4 lit c EStG, ' 25 Abs 1 Z 1 lit c EStG </kundenkategorie> <kategorie>Heft 1/2003</kategorie> <par class="Komm_H2" xml:lang="de">Verfassungswidrigkeit der Unfallrentenbesteuerung</par> <par class="Komm_H3" xml:lang="de">EINKOMMENSTEUER<linebreak/> <inline class="*Paragraph">' 3 Abs 1 Z 4 lit c</inline> <inline class="*hidden"> EStG</inline>, <inline class="*Paragraph">' 25 Abs 1 Z 1 lit c EStG</inline> </par> </part> <part> <kundenkategorie>EINKOMMENSTEUER ' 3 Abs 1 Z 4 lit c EStG, ' 25 Abs 1 Z 1 lit c EStG </kundenkategorie> <kategorie>Heft 1/2003</kategorie> <par class="Komm_H2" xml:lang="de">Verordnung |ber die Kriterien zur Festlegung fvrderbarer Forschungs- und Entwicklungsaufwendungen (-ausgaben)</par> <par class="Komm_H3" xml:lang="de"> <inline class="*Paragraph">' 4 Abs 4 Z 4a</inline> <inline class="*hidden"> EStG</inline>, <inline class="*Paragraph">' 108c Abs 2 Z 1 EStG</inline> </par> <par class="Komm_normal" xml:lang="de"> <inline class="*fett">BGBl II 2002/506, ausgegeben am 20. 12. 2002</inline> </par> </part> <part> <kundenkategorie>UMSATZSTEUER</kundenkategorie> <kategorie>Heft 1/2003</kategorie> <par class="Komm_H2" xml:lang="de">Dnderungen der Umsatzsteuerrichtlinien - Rechnungslegung aufgrund des 2. Abgabendnderungsgesetzes 2002</par> <par class="Komm_H3" xml:lang="de">UMSATZSTEUER</par> </part> <part> <kundenkategorie>UMSATZSTEUER</kundenkategorie> <kategorie>Heft 03/2004</kategorie> <par class="Komm_H2" xml:lang="de">Keine Geschdftsf|hrerhaftung bei fehlender Entscheidung |ber einen \berrechnungsantrag</par> <par class="Komm_H3" xml:lang="de"> <inline xml:lang="en">BAO<linebreak/> </inline> <inline class="*Paragraph" xml:lang="en">' 9</inline> </par> </part> </test> Input: <?xml version="1.0" encoding="UTF-8"?> <root> <Norm1> <part> <kategorie>Heft 1/2003</kategorie> <par class="Komm_H2" xml:lang="de">Verfassungswidrigkeit der Unfallrentenbesteuerung</par> <par class="Komm_H3" xml:lang="de">EINKOMMENSTEUER<linebreak/> <inline class="*Paragraph">' 3 Abs 1 Z 4 lit c</inline> <inline class="*hidden"> EStG</inline>, <inline class="*Paragraph">' 25 Abs 1 Z 1 lit c EStG</inline> </par> </part> </Norm1> <Norm1> <part> <kategorie>Heft 1/2003</kategorie> <par class="Komm_H2" xml:lang="de">Verordnung |ber die Kriterien zur Festlegung fvrderbarer Forschungs- und Entwicklungsaufwendungen (-ausgaben)</par> <par class="Komm_H3" xml:lang="de"> <inline class="*Paragraph">' 4 Abs 4 Z 4a</inline> <inline class="*hidden"> EStG</inline>, <inline class="*Paragraph">' 108c Abs 2 Z 1 EStG</inline> </par> <par class="Komm_normal" xml:lang="de"> <inline class="*fett">BGBl II 2002/506, ausgegeben am 20. 12. 2002</inline> </par> </part> </Norm1> <Norm1> <part> <kategorie>Heft 1/2003</kategorie> <par class="Komm_H2" xml:lang="de">Dnderungen der Umsatzsteuerrichtlinien - Rechnungslegung aufgrund des 2. Abgabendnderungsgesetzes 2002</par> <par class="Komm_H3" xml:lang="de">UMSATZSTEUER</par> </part> </Norm1> <Norm1> <part> <kategorie>Heft 03/2004</kategorie> <par class="Komm_H2" xml:lang="de">Keine Geschdftsf|hrerhaftung bei fehlender Entscheidung |ber einen \berrechnungsantrag</par> <par class="Komm_H3" xml:lang="de"> <inline xml:lang="en">BAO<linebreak/> </inline> <inline class="*Paragraph" xml:lang="en">' 9</inline> </par> </part> </Norm1> </root> Xslt: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <test> <xsl:apply-templates/> </test> </xsl:template> <xsl:template match="Norm1/part"> <part> <kundenkategorie> <xsl:value-of select="(par[@class='Komm_H3'] |preceding::par[@class='Komm_H3'])[text()[1][normalize-space()]][not(contains (text()[1],','))][last()]"/> </kundenkategorie> <xsl:copy-of select="*"/> </part> </xsl:template> </xsl:stylesheet> Hope this helps
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: AW: [xsl] use preceding element, David Carlisle | Thread | RE: [xsl] use preceding element or , Michael Kay |
Re: AW: AW: [xsl] use preceding ele, David Carlisle | Date | RE: AW: AW: [xsl] use preceding ele, Michael Kay |
Month |