[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: @xmlns retrieving value of

Subject: Re: @xmlns retrieving value of
From: Mario Madunic <hajduk@xxxxxxxx>
Date: Tue, 12 Sep 2006 10:06:06 -0700
mario madunic
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

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.