Subject: Re: [xsl] @xmlns retrieving value of From: George Cristian Bina <george@xxxxxxxxxxxxx> Date: Tue, 12 Sep 2006 21:11:05 +0300 |
</xsl:template> </xsl:stylesheet>
Best Regards, George --------------------------------------------------------------------- George Cristian Bina <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com
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.achieve.
Saxon 8 XSLT 2
Here is a sample piece of xml to help get the idea of what I'm trying totest<root> ... <p xmlns:anElem="http://www.namespace.com/namespaces/anElem">this is asuccess. Ito retrieve the namespace uri and name.</p> ... </root>
I've been trying to get the namespace and uri from the @xmlns with nowould like to reuse both the ns and uri when I transform the p intosomething liketest<newDoc> ... <anElem:para xmlns="http://www.namespace.com/namespaces/anElem">this is ato 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] @xmlns retrieving value o, Mario Madunic | Thread | Re: [xsl] @xmlns retrieving value o, Mario Madunic |
Re: [xsl] @xmlns retrieving value o, Mario Madunic | Date | Re: [xsl] Sum in conjunction with s, Steve |
Month |