[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] XSL questions


Subject: Re: [xsl] XSL questions
From: David Carlisle <davidc@xxxxxxxxx>
Date: Thu, 1 Jun 2006 18:14:40 +0100

> I have a element definited in a DTD file as 
> 
> <!ELEMENT Para (#PCDATA | Emphasis)*>
> 
> I need to the content of the element contains the html list tags, eg. <ul><LI>first</LI><LI>second</LI></ul>.
> 
> XMLSpy says that is invalid since the parent elements' content disallow element ul. 

XMLSpy is correct to say that's invalid, the dtd says you may not have
html elements there and you say you need them, so you need to ignore the
dtd or to change the dtd. XSLT doesn't care, if you generate the html
elements in a way that is not valid you get no warning from xslt.

> The position function doesn't work for my need. It returns the total number of elements. 
No it doesn't, it returns the position of thee current node in the
current node list.

> I have tried to use the count on an element/attribute. I don't know
> why it always returns one. 

> ... count(@id) 

I'm not sure what value you'd expect it to return, @id selects all the
id attributes of the current node, and there can only ever be at most 1
attribute with the same name, so this will always be 1 (if there is an
id) or 0 otherwise.

		<xsl:for-each select=" ...">
					<xsl:if test="$current_id = @relatedPerson">
		
					</xsl:if>
				</xsl:for-each>

don't do that, just select the nodes that you want

		<xsl:for-each select=" ...[$current_id = @relatedPerson]">
		</xsl:for-each>

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________


Current Thread
Keywords