xsl-list
[Top] [All Lists]

RE: Do a copy of a document but avoid duplicates in certain lists of tags

2003-10-28 02:04:42
Hei Michael,

thanks for the advice.

I thought put everything in the default name space 
and everything will workout.

But if I declare the default name space in the style sheet 
it still does not work??

The style sheet:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml"; 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; >
        <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
        <xsl:template match="node()|@*">
                <xsl:copy>
                        <xsl:apply-templates select="node()|@*"/>
                </xsl:copy>
        </xsl:template> 
        <xsl:template match="ul" >
                <xsl:comment>From Here</xsl:comment>
                <xsl:copy >
                        <xsl:for-each select="li[not(.=following-sibling::li)]">
                                <xsl:copy>
                                        <xsl:apply-templates 
select="node()|@*"/>
                                </xsl:copy>
                        </xsl:for-each>
                </xsl:copy>
        </xsl:template>
</xsl:stylesheet>

does not work on:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
<?xml-stylesheet type="text/xsl" href="extractDublicates.xslt"?>
<html xmlns="http://www.w3.org/1999/xhtml";>
        <head>
                <title>Enter the title of your XHTML document here</title>
        </head>
        <body>
                <p>Enter the body text of your XHTML document here</p>
                <div>
                        <p>Another chapter</p>
                        <ul>
                                <li>A</li>
                                <li>A</li>
                                <li>B</li>
                                <li>B</li>
                                <li>B</li>
                                <li>C</li>
                                <li>C</li>
                        </ul>
                </div>
        </body>
</html>

????

Georg Lenz


-----Original Message-----
From: Michael Kay [mailto:mhk(_at_)mhk(_dot_)me(_dot_)uk]
Sent: Dienstag, 28. Oktober 2003 09:18
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Do a copy of a document but avoid duplicates in
certain lists of tags


Precisely, as I suspected: you've put the elements in a namespace and
you therefore need to prefix their names in the stylesheet.

Michael Kay

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Lenz, Georg
Sent: 28 October 2003 06:44
To: 'xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com'
Subject: RE: [xsl] Do a copy of a document but avoid 
duplicates in certain lists of tags


Hei Michael,

its the default namespace, the document starts with
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>
<?xml-stylesheet type="text/xsl" 
href="extractDublicates.xslt"?> <html 
xmlns="http://www.w3.org/1999/xhtml";>?

Georg Lenz


-----Original Message-----
From: Michael Kay [mailto:mhk(_at_)mhk(_dot_)me(_dot_)uk]
Sent: Montag, 27. Oktober 2003 18:57
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Do a copy of a document but avoid 
duplicates in certain lists of tags


Probably the "ul" element is in the XHTML namespace. You need 
to declare a prefix for this namespace in your stylesheet and 
write match="xhtml:ul".

Michael Kay

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf 
Of 
Lenz, Georg
Sent: 27 October 2003 16:15
To: 'XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com'
Subject: [xsl] Do a copy of a document but avoid duplicates 
in certain lists of tags




I have the following problem:

I want a perfect copy of an xhtml document but want avoid coping
duplicates "li"s in all "ul" lists.

I tried:

    <xsl:template match="node()|@*">
            <xsl:copy>
                    <xsl:apply-templates select="node()|@*"/>
            </xsl:copy>
    </xsl:template> 

    <xsl:template match="ul" >
            <xsl:comment>From Here</xsl:comment>
            <xsl:copy >
                    <xsl:for-each
select="li[not(.=following-sibling::li)]">
                            <xsl:copy>
                                    <xsl:apply-templates 
select="node()|@*"/>
                            </xsl:copy>
                    </xsl:for-each>
            </xsl:copy>
    </xsl:template>

but it does not work.
It does not even touch the ul template?
If the document node would be "ul" it works???

Any help available.

Thanks in advance

Mit freundlichem Gruß / Best Regards
Georg Lenz
Java IDE Core
SAP AG

Neurottstrasse 16
69190 Walldorf
T   +49-6227-7-64235
F   +49-6227-7-74235
E   georg(_dot_)lenz(_at_)sap(_dot_)com



 XSL-List info and archive:  
http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info 
and archive:  http://www.mulberrytech.com/xsl/xsl-list

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list