[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: @xmlns retrieving value of
Thanks George for your solution. This isn't exactly what I was looking for but that is my fault. Should have mentioned that I would like to test for the existence of @xmlns and output the namespace only then. So I can get output like the following <anElem:para xmlns:anElem="http://www.namespace.com/namespaces/anElem">this is a test to retrieve the namespace uri and name.</anElem:para> or if ther is no @xmlns <para>this is a test to retrieve the namespace uri and name.</para> from <root> ... <p xmlns:anElem="http://www.namespace.com/namespaces/anElem">this is a test to retrieve the namespace uri and name.</p> <p>this is a test to retrieve the namespace uri and name.</p> ... </root> Sorry about that. Mario Quoting George Cristian Bina <george@xxxxxxxxxxxxx>: > Hi Mario, > > The document you want as output has the para element with an undeclared > namespace as the anElem prefix is not bound. Probably what you want is > > <anElem:para > xmlns:anElem="http://www.namespace.com/namespaces/anElem">this is a test > to retrieve the namespace uri and name.</anElem:para> > ? > > In that case you can use something like: > <?xml version="1.0" encoding="utf-8"?> > <x:stylesheet xmlns:x="http://www.w3.org/1999/XSL/Transform" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> > <x:template match="root"> > <newDoc> > <xsl:apply-templates/> > </newDoc> > </x:template> > <xsl:template match="p"> > <xsl:variable name="pns" select="namespace-uri()"/> > <xsl:for-each select="namespace::*[name()!=$pns and name()!='xml'][1]"> > <xsl:element name="{name()}:para" namespace="{.}">this is a test > to retrieve the namespace uris > and name.</xsl:element> > </xsl:for-each> > </xsl:template> > </x:stylesheet> > > to get > > <?xml version="1.0" encoding="UTF-8"?><newDoc> > ... > <anElem:para > xmlns:anElem="http://www.namespace.com/namespaces/anElem">this is a test > to retrieve the namespace uris > and name.</anElem:para> > ... > </newDoc> > > Best Regards, > George > --------------------------------------------------------------------- > George Cristian Bina > <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger > http://www.oxygenxml.com > > > Mario Madunic wrote: > > Hi I'm hoping somebody might have some insight. > > > > Saxon 8 > > XSLT 2 > > > > Here is a sample piece of xml to help get the idea of what I'm trying to > achieve. > > > > <root> > > ... > > <p xmlns:anElem="http://www.namespace.com/namespaces/anElem">this is a > test > > to retrieve the namespace uri and name.</p> > > ... > > </root> > > > > I've been trying to get the namespace and uri from the @xmlns with no > success. I > > would like to reuse both the ns and uri when I transform the p into > something like > > <newDoc> > > ... > > <anElem:para xmlns="http://www.namespace.com/namespaces/anElem">this is a > test > > to retrieve the namespace uri and name.</anElem:para> > > ... > > </newDoc> > > > > I've used > > > > namespace-uri() > > name() > > namespace-uri-for-prefix() > > namespace-uri-from-QName() > > > > I'm pretty sure the last 2 were being used inappropriately > > > > Any ideas or solution would be appreciated. > > > > Thanks > > > > Marijan Madunic
|
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
|