[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: XPATH total count of multiple child nodes
Edward,
At 01:22 PM 5/3/2005, you wrote: My new problem is that I am trying to build a conditional statement based on a count of the number of child elements. There is an element "dates" that contains child elements containing particular dates. Normally, I would use something like: Sure, that's simply "child::*" ("*" is a node test that matches any element, or more correctly, any element except when on the attribute and namespace axes, wherein it matches an attribute or a namespace node), which is long for "*". So you need <xsl:match="dates"> ... whatever you do for the wrapper if anything ... <xsl:if test="*"> ... whatever you do now you know there are children ... </xsl:if> </xsl:match> Note that ordinarily we don't have to conduct this test, however, since apply-templates just traverses to whatever child elements we have (or actually, to child nodes of any type). There are cases, however, when you may have <dates></dates> and you want to distinguish that case. You can also test="not(*)" which will be true if you *don't* have any child elements. Similarly, count(*) returns a number representing how many child elements you have, so you could test="count(*) > 2" which tests true when there are three or more element children. If you also need to test for comments or processing instructions, another node test is "node()" -- in XPath, child::node() will return all child nodes of whatever type, not just elements. Enjoy, Wendell
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|