Subject: Re: [xsl] Name Spaces in Selects and xsl:element From: Karl Stubsjoen <kstubs@xxxxxxxxx> Date: Thu, 5 May 2005 09:26:45 -0700 |
Simple question: If you element is named fn:field, and you do an apply templates of select="fn:field", does your match have to be "fn:field", or does it work fine with "field", and if not, is there a way to set up a match for field for all namespaces? (maybe that was all ready answered, reviewing this thread) On 5/5/05, Karl Stubsjoen <kstubs@xxxxxxxxx> wrote: > > omit-result-prefixes="ms" > Did you mean exclude-result-prefixes? > > exclude-result-prefixes is working, except for variables/elements that > are being evaluated with xxx:nod-set(). I have a template rule which > sorts data, and creates a number attribute from a date, the result > might look something like this: > > <fn:members> > <fn:member> > <field name="first_name">Suzie</field> > <field name="dob" num_dtm="19990604"/>1999-06-04</field> > </fn:member> > <fn:member> > <field name="first_name">Bob</field> > <field name="dob" num_dtm="20010304"/>2001-03-04</field> > </fn:member> > </fn:members> > > Contained in the variable "sorted_members". The xml result of this is > not as "pretty" as I'd like it, all though better for sure; it removed > my other namespaces, but the xmlns definition for "fn" lingers. > > Any ideas on that? > > On 5/5/05, David Carlisle <davidc@xxxxxxxxx> wrote: > > > > > So, given the sample data, how would one > > > select all elements who's namespace is "fn"? > > > > select="//fn:*" > > > > does just what you say 9so long as fn prefix is bound to a namespace in > > your stylesheet (the source doesn't have to use the same prefix) > > > > But that probably isn't what you want to do, as selecting all elements > > in a single node set isn't usually useful. In this case you'd get fn:A > > and all the fn:B's > > > > if you justuse a normal apply-templates then you can make all elements > > be discarded > > <xsl:template match="*"/> > > and then have more specific templates to do something with fn elements, > > eg > > <xsl:template match="fn:*"> > > <xsl:apply-templates/> > > </xsl:template> > > > > will produce the result that you wanted. > > > > Another question, about xsl:element. When I use this to create > > elements, the elements never get the appended xmlns attribute added. > > > > note that namespace declarations (xmlns....) are not attributes to > > XPath/XSLT (even though they use a similar syntax) > > > > > > > <NewElement xmlns:ms="urn:schemas-microsoft-com:xslt"> > > > How can this be avoided without using the xsl:element command? > > > > Th ms namespace prefix must be in scope in your stylesheet. > > If you need it declared but don't need it in the result add > > omit-result-prefixes="ms" > > to your xsl:stylesheet element. > > > > 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Name Spaces in Selects an, Karl Stubsjoen | Thread | Re: [xsl] Name Spaces in Selects an, David Carlisle |
Re: [xsl] XSL - Transforming 2 XSL , JBryant | Date | Re: [xsl] XSL - Transforming 2 XSL , Colin Paul Adams |
Month |