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
Ronan HayesSubject: Changing elements values
Author: Ronan Hayes
Date: 16 Feb 2006 06:36 AM
I have this XML File:

<?xml version="1.0" encoding="UTF-8"?>
<test>
<level1>
<textA>me@hotmail.com</textA>
<textB>textB</textB>
</level1>
</test>

and I then have this XSL file

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="level1">
<xsl:apply-templates select="textA"/>
<xsl:apply-templates select="textB"/>
</xsl:template>
<!--Match the Element-->
<xsl:template match="textA">
<!--Change this Variable Name to be logically related to the element -->
<xsl:variable name="email">
<xsl:value-of select="text()" />
</xsl:variable>
<!--If the value matches what we want, change, else change to a value we want. -->
<xsl:choose>
<xsl:when test="$email='me@hotmail.com'">
<textA>new email here</textA>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="textB">
<!--Change this Variable Name to be logically related to the element -->
<xsl:variable name="email">
<xsl:value-of select="text()" />
</xsl:variable>
<!--If the value matches what we want, change, else change to a value we want. -->
<xsl:choose>
<xsl:when test="$email='me@hotmail.com'">
<textA>new email here</textA>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>



Basically what I am trying to do is change the value of certain elements. For example if textA is me@hotmail.com then change it.

The other problem I am having is how to specify how to handle the tree structure

<xsl:template match="level1">
<xsl:apply-templates select="textA"/>
<xsl:apply-templates select="textB"/>
</xsl:template>

What I want to avoid is having to specify level1 but rather let the XSL navigate the entire tree structure.

Any ideas?

Posttop
(Deleted User) Subject: Changing elements values
Author: (Deleted User)
Date: 16 Feb 2006 10:14 AM
Hi, Ronan. If you apply the same technique described in the following thread, using XSLT's conditional processing statements you should be able to get what you need.

http://www.stylusstudio.com/ssdn/default.asp?action=9&read=4695&fid=23

David Foster
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.