xsl-list
[Top] [All Lists]

AW: use preceding element or self

2005-04-29 03:52:43

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 förderbarer 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">Änderungen der 
Umsatzsteuerrichtlinien - Rechnungslegung aufgrund des 2. 
Abgabenänderungsgesetzes 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 Geschäftsfü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 förderbarer 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">Änderungen der 
Umsatzsteuerrichtlinien - Rechnungslegung aufgrund des 2. 
Abgabenänderungsgesetzes 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 
Geschäftsfü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[(_at_)class='Komm_H3'] 
|preceding::par[(_at_)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

--~------------------------------------------------------------------
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>
--~--



<Prev in Thread] Current Thread [Next in Thread>