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

Subject: RE: [xsl] Do a copy of a document but avoid duplicates in certain lists of tags
From: "Lenz, Georg" <georg.lenz@xxxxxxx>
Date: Tue, 28 Oct 2003 10:04:42 +0100
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@xxxxxxxxx]
Sent: Dienstag, 28. Oktober 2003 09:18
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
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@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Lenz, Georg
> Sent: 28 October 2003 06:44
> To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx'
> 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@xxxxxxxxx]
> Sent: Montag, 27. Oktober 2003 18:57
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> 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@xxxxxxxxxxxxxxxxxxxxxx
> > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> > Lenz, Georg
> > Sent: 27 October 2003 16:15
> > To: 'XSL-List@xxxxxxxxxxxxxxxxxxxxxx'
> > 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.lenz@xxxxxxx
> > 
> > 
> > 
> >  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


Current Thread