XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Herb RamosSubject: How to remove namespace attributes from element
Author: Herb Ramos
Date: 26 May 2005 04:59 PM
Hi,

I've got the following xml file that I am trying to process with XSL

<?xml version="1.0" encoding="UTF-8"?>
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml">
<property name="universals" value="none"/>
<property name="maxage" value="30s"/>
</vxml>

I have the following XSL to transform
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<xsl:text>Java Script Here</xsl:text>
<xsl:apply-templates select="vxml"/>
<xsl:apply-templates select="property"/>
</xsl:template>

<xsl:template match="vxml">
Processing vxml template
</xsl:template>

<xsl:template match="vxml/property">
Processing property template
</xsl:template>

</xsl:stylesheet>

When I try to transform the source XML, nothing happens.
I was expecting to get:
Processing vxml template
Processing property template
...

Instead I get nothing

If I remove the attribute xmlns="http://www.w3.org/2001/vxml"
from the <vxml> element in the source document, I do get my desired result.

Q) How to I get it to process with the xmlns attribute in my source?










Postnext
Ivan PedruzziSubject: How to remove namespace attributes from element
Author: Ivan Pedruzzi
Date: 26 May 2005 05:12 PM
Hi Herb,
You need to define the correct ns in the stylesheet to match the right elements

<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:vx="http://www.w3.org/2001/vxml">
>

then change the match rule

<xsl:template match="vx:vxml">


Hope this helps
Ivan Pedruzzi
Stylus Studio Team

Postnext
Herb RamosSubject: How to remove namespace attributes from element
Author: Herb Ramos
Date: 26 May 2005 05:25 PM
Thanks for your quick reply. So if my source document contains a xmlns attribute, I have to include that attribute in my xsl stylesheet
and then include the ns declaration in every Xpath epression?

modifying my code:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:vx="http://www.w3.org/2001/vxml">
>
<xsl:output method="xml" indent="yes"/>
<!-- start with the root -->
<xsl:template match="/">
<xsl:apply-templates select="vx:vxml"/>
<xsl:apply-templates select="vx:vxml/property"/>
</xsl:template>

<xsl:template match="vx:vxml">
Processing vxml template
<xsl:attribute name="maxage">
<xsl:text>todo</xsl:text>
</xsl:attribute>
</xsl:template>

<xsl:template match="vx:vxml/property">
Processing property template
</xsl:template>

</xsl:stylesheet>


I only get the output

Processing vxml template
and not
Processing property template

Is there another way?

Posttop
Ivan PedruzziSubject: How to remove namespace attributes from element
Author: Ivan Pedruzzi
Date: 26 May 2005 05:49 PM


All elements in your XML input are in the same ns so you need to address them with the right prefix

vx:vxml/vx:property


Hope this helps
Ivan Pedruzzi
Stylus Studio Team

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.