xsl-list
[Top] [All Lists]

Re: [xsl] XSL questions

2006-06-01 11:08:59
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
________________________________________________________________________

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




-- 
_______________________________________________

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


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