Subject: Re: XSL questions
From: "Wei Wei" <wei725@xxxxxxxxx>
Date: Thu, 01 Jun 2006 10:08:41 -0800
|
Thanks Dave for your response. And please see below.
> > 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.
>
I can use another editor to make the change. The problem is the html tags
don't serve its funcation when a html file is genereated with the XSL file.
Not a solution?
> > 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.
>
You're right. But, that is not what I need. I need to know the number of
elements met the condition(both in the "when" and "otherwise"), but not the
position of an element in the 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.
>
The id is an attribute of the node looping. I guess I should count the node
itself. But, the editor doesn't allow me.
> <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>
>
That serves the same function. But, it is not what I am asking for. I need to
find out whether there is an element met the condition after the loop.
Thanks,
w.
> ________________________________________________________________________
> 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
> ________________________________________________________________________
>
--
_______________________________________________
Search for businesses by name, location, or phone number. -Lycos Yellow
Pages
http://r.lycos.com/r/yp_emailfooter/http://yellowpages.lycos.com/default.asp?
SRC=lycos10
|