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 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Herb RamosSubject: how to create templat to match certain nodes
Author: Herb Ramos
Date: 31 May 2005 03:25 PM
Hi,

I'm try to create a template to match all nodes except a certain one.
For example in my source I have:

<vxml>
<catch event="connection.disconnect">
<goto next="Stop.jsp?>
</catch>
<property name="inputmodes" value="voice dtmf"/>
<property name="timeout" value="5s"/>
<var name="x"/>
<var name="y"/>
</vxml>

I can process all element nodes whose name is property by

<xsl:template match="property">
....
</xsl:template>

but how to I process every other element node without processing the property node again:

I tried
<xsl:template match="*[not(property)">
....
</xsl:template>

How do I call the template:
<xsl:apply-templates select="???"/>



Postnext
Ivan PedruzziSubject: how to create templat to match certain nodes
Author: Ivan Pedruzzi
Date: 31 May 2005 03:46 PM

Define a template with empty body

<xsl:template match="property"/>


Hope this helps
Ivan Pedruzzi
Stylus Studio team

Postnext
Herb RamosSubject: how to create templat to match certain nodes
Author: Herb Ramos
Date: 31 May 2005 03:51 PM
Not sure if this will work.

I want to process a particular element called "property"
and also process any other element except property.

If I just use
<xsl:template match="property"/>
then how to do process other elements except property

Postnext
Ivan PedruzziSubject: how to create templat to match certain nodes
Author: Ivan Pedruzzi
Date: 31 May 2005 03:59 PM

Give us a more concrete example of which element "property" you want to process and which don't.

Thank You
Ivan


Postnext
Herb RamosSubject: how to create templat to match certain nodes
Author: Herb Ramos
Date: 31 May 2005 04:06 PM
In the example I posted, I several child elements of <vxml>.
The child elements being <catch>,<property>,<var>.

As in:
<vxml>
<catch event="connection.disconnect">
<goto next="Stop.jsp?>
</catch>
<property name="inputmodes" value="voice dtmf"/>
<property name="timeout" value="5s"/>
<var name="x"/>
<var name="y"/>
<vxml>

So I want to process this doc the following way.
1)Go through the element nodes and apply a template matching
the <property> element.
2)Go through the element nodes and apply a template match all element
nodes except <property> (<catch>, <var>, etc)


Thanks again.



Postnext
Ivan PedruzziSubject: how to create templat to match certain nodes
Author: Ivan Pedruzzi
Date: 31 May 2005 05:33 PM

In the following example I used a parameter.
An alternative approach would be to use the attribute mode in the template definition, but that would require having a double implementation for each template.


<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<merge>
<xsl:apply-templates/>
<xsl:apply-templates>
<xsl:with-param name="skip" select="'property'"/>
</xsl:apply-templates>
</merge>
</xsl:template>

<xsl:template match="@*|node()">
<xsl:param name="skip"/>
<xsl:copy>
<xsl:apply-templates select="@*|node()">
<xsl:with-param name="skip" select="$skip"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>

<xsl:template match="vxml">
<xsl:param name="skip"/>
<myroot>
<xsl:apply-templates>
<xsl:with-param name="skip" select="$skip"/>
</xsl:apply-templates>
</myroot>
</xsl:template>

<xsl:template match="property">
<xsl:param name="skip"/>
<xsl:if test="$skip != local-name()">
<xsl:copy/>
</xsl:if>
</xsl:template>

</xsl:stylesheet>


Postnext
Herb RamosSubject: how to create templat to match certain nodes
Author: Herb Ramos
Date: 31 May 2005 05:50 PM
Thanks Ivan.

I'll have a look.

BTW, I downloaded a trial of Stylus Studio and I tried using Mapper to convert a sample xml file. I did not see any easy way to express what I wanted done when I was transforming the doc manually. What are some of the limitations of Mapper?

Posttop
Ivan PedruzziSubject: how to create templat to match certain nodes
Author: Ivan Pedruzzi
Date: 02 Jun 2005 01:11 AM
I got bits and peaces on what you are trying to do so i can't tell for sure if it can be done using XML to XML Mapper.

Mapper is designed to facilitate mapping of structures and not well suited for content mapping (if node A = 'a' map to X else map to Y).

Hope this helps
Ivan Pedruzzi
Stylus Studio Team


 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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.