Subject: Re: [xsl] Hot to get names ?? From: Peter Davis <pdavis152@xxxxxxxxx> Date: Tue, 26 Feb 2002 12:39:27 -0800 |
Why not something like: <xsl:template match="product/*[starts-with(local-name(), 'udt')]"> UDT Value: <xsl:value-of select="."/> </xsl:template> Or <xsl:template match="product"> Some stuff. <xsl:apply-templates select="*[starts-with(local-name(), 'udt')]"/> Some more stuff. </xsl:template> Alternatively, if you just wanted to get elements between last-modified and start-date regardless of whether they actually have names that start with 'udt', you could replace the appropriate part of the XPath expression with something like this: *[preceding-sibling::last-modified and following-sibling::start-date] I used local-name() instead of name() since if your elements have a namespace and prefix, then the prefix would likely screw up the test, but it shouldn't matter if used with the example you gave. On Tuesday 26 February 2002 10:39, Khalid wrote: > Hello All, > How do I get the names of each element and then do some processing > accordingly,I can't seem to find a way to use name() appropriately,any help > is appreciated, > > below is the chunk of xml that I am using,I want to be able to get all the > elements which are after last-modified and before start-date,so I would > like to get some condition that checks for the elements names that begin > with 'udt',but there are other elements attached to this element and the > have the same structure,and what I want is only get the values at each > level from between the last-modified and start-date. > > <product> > <system-id>4</system-id> > <last-modified>22 January, 2002 09:26</last-modified> > <udt-product-id>DMD</udt-product-id> > <udt-product-name>Daily Mail Monday to Friday</udt-product-name> > <start-date>7 January, 2002</start-date> > <end-date /> > <publishing-frequency>Weekly</publishing-frequency> > <editions> > <edition> > <system-id>71</system-id> > <last-modified>22 January, 2002 09:21</last-modified> > <udt-product-code>DMD</udt-product-code> > <udt-edition-name>Anglia1</udt-edition-name> > <udt-print-centre-code>HQP</udt-print-centre-code> > <udt-descriptor>Edition</udt-descriptor> > <start-date>8 January, 2002</start-date> > <end-date /> > > </editions> > </produict> > </products> > in the above example the tree contains multiple subroot elements that has > the same structure as product.I need to get only the elements which start > with udt at each level.,say first I would like to get all the elements that > start-with 'udt' from the product level,at this point I do not want to get > any element which may appear at lower level of heirarchy such as editions.I > would only want edition related values on descretion. > please guide,thanks > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list -- Peter Davis I can read your mind, and you should be ashamed of yourself. XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Hot to get names ??, Joerg Heinicke | Thread | [xsl] Namespace problem, Eric Vitiello |
Re: [xsl] binding an xpath expressi, Joerg Heinicke | Date | [xsl] String parsing, node creation, Michael Clark |
Month |