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
Conferences Close Tree View
+ Stylus Studio Feature Requests (1192)
- Stylus Studio Technical Forum (14621)
-> - Stylus Studio - Registrar en o... (1)
-> + Stylus Studio - Registrar en o... (2)
-> + Can a pipeline send a file by ... (2)
-> + After Updateing WIN10 to WIN11... (12)
-> + Where do I add the custom java... (3)
-> + Where is the Diagram tab? (5)
-> + Applying XSLT to Word DOCX/XML (2)
-> - CSV conversion via ConvertToXM... (1)
-> + Text symbols in SS not same as... (4)
-> + Exposing xquery as webservice ... (6)
-> + Syntax Identifier (2)
-> + Saving a Converted XML as an X... (5)
-> + Output document cannot be pars... (4)
-> - Archiving output from conversi... (1)
-> + EDIFACT guideline from Stylus ... (3)
-> + CSV file putting all the data ... (5)
-> + Can't install Home version 64b... (5)
-> + presale - Can I covers this sc... (5)
-> + Problem with UNB (5)
-> + Splitting EDIFACT files pipeli... (4)
-- [1-20] [21-40] [41-60] Next
+ Website Feedback (249)
+ XSLT Help and Discussion (7625)
+ XQuery Help and Discussion (2017)
+ Stylus Studio FAQs (159)
+ Stylus Studio Code Samples & Utilities (364)
+ Stylus Studio Announcements (113)
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


   
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.