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)
+ Website Feedback (249)
- XSLT Help and Discussion (7625)
-> - XSL-fo and how to line feed th... (1)
-> + Houston we have a problem (2)
-> + XSL-FO PDF generation (2)
-> + StylusStudio - pick XSLT 1.0 b... (6)
-> - Stylus Studio 2010 debugging f... (1)
-> - Drop down menu List / Option M... (1)
-> - XML transformation using Java ... (1)
-> + i can't to find XSLT editor in... (2)
-> - Copy xml input as value of an ... (1)
-> - Remove Name space from the Tab... (1)
-> - CGI formatted URL with name/va... (1)
-> - Problem with counting (1)
-> + for-each loop is only returnin... (3)
-> - sort date but some dates may b... (1)
-> - Entity Conversion (1)
-> - How can I build an xml convert... (1)
-> + Little Help (2)
-> + how do I merge nodes to one sc... (2)
-> - beginner help xslt and xpath (1)
-> - Convert XML Feed to CSV/SQL/XL... (1)
-> - Working with text node. (1)
-> - No Topic (1)
-> - API for XSLT Converter for .NE... (1)
-> - Getting started (1)
-> + saxon sql extensions - mysql a... (2)
-> - How do I copy and create new e... (1)
-> + substring-before and sums (3)
-> + Parsing special characters in ... (2)
-> + Schema - Require attribute in ... (2)
-> - Edit existing XSL files when n... (1)
-> + How can I use one single XSLT ... (2)
-> - Default selection of value in ... (1)
-> - Problem with watermark in pdf ... (1)
-> + XSLT Parameter Values dialog n... (3)
-> + Value of File Name is not acce... (10)
-> - Need help with a complex table... (1)
-> - How to replace all nordic char... (1)
-> - XSLT java heap space error wit... (1)
-> - Table Overflow to next page (1)
-> - Using XSLT 2.0 to define custo... (1)
-> - "standalone" attribute and xs... (1)
-> + Standardizing IP addresses (2)
-> + Programmatically changing page... (6)
-> + Can Stylus generate XSLT if so... (5)
-> + Extraction based on NODE Name. (2)
-> + NO XSLT:WYSIWYG (2)
-> + determine condition at run tim... (2)
-> - How to reduce top margin in ev... (1)
-> + need help on xsl looping (4)
-> - Convert Symbol to Element (1)
-> + Separator -only- between field... (3)
-> + DocBook (9)
-> + First Occurance of Alphabet (2)
-> + XSL:Key and Document (2)
-> + Excel Macro using XSLT (2)
-> + Add missing element and attrib... (2)
-> + XSL: Stop Count at First Match (2)
-> + XSD to EDI (4)
-> + How to access data from nested... (2)
-> + Simple division of XML file (2)
-> - XML to Flat File (1)
-> + Dispalying data whith xsl:for ... (3)
-> - distinct nodes - into 3 column... (1)
-> + Newbie at XML (2)
-> + XSL Not Working (3)
-> + to draw table using xsl (2)
-> + Base64 decoder (5)
-> + How to create a hidden sheet u... (3)
-> + XML Reports (2)
-> + Copying image files from one d... (2)
-> + XML conversion to RSS (2)
-> + Inserting Image (2)
-> + Xml to Pdf using Xsl (2)
-> + Using a parameter (or similar)... (2)
-> + How to avoid creating empty xm... (2)
-> + how to read txt files in xml (2)
-> + Limit records to 4 per page. P... (4)
-> + XSLT Mapping Based on JDK5 (2)
-> + XML Mappin (2)
-> + Format Datetime with xslt (3)
-> + Cell border missing (2)
-> + XSL: Key (not matches) (5)
-> + Loop through each char in stri... (2)
-> + What is the best way to sum va... (3)
-> + xslt sort help (2)
-> + getting the count (2)
-> + XSL dynamic variables (5)
-> + XSL:Key use (3)
-> - Help With Updating Attributes ... (8)
-> ->Help With Updating Attrib...
-> ->Help With Updating Attrib...
-> ->Help With Updating Attrib...
-> ->Help With Updating Attrib...
-> ->Help With Updating Attrib...
-> ->Help With Updating Attrib...
-> ->Help With Updating Attrib...
-> + GETTING COUNT AND POSITION usi... (3)
-> - Hi Everyone !! (1)
-> + Graph Traversal (Keep track of... (2)
-> + XSL IF with sum (2)
-> + Param not incrementing (2)
-> + Iterating through value tags (3)
-> + URGENT :::: Remove the name sp... (2)
-> + Pass new param values to ASP O... (2)
-> + Detect Browser Version in XSL (2)
-> + xslt result-document (2)
-> + Unique nodes based on two attr... (3)
-- Previous [181-200] [201-220] [221-240] Next
+ XQuery Help and Discussion (2017)
+ Stylus Studio FAQs (159)
+ Stylus Studio Code Samples & Utilities (364)
+ Stylus Studio Announcements (113)
Topic  
Postnext
Ron BernardSubject: Help With Updating Attributes Using XSLT
Author: Ron Bernard
Date: 14 Aug 2009 11:05 AM
Hello. I am really new to xslt. I have an xml file that is created dynamically and contains attributes that need to be updated. I was told that using an xsl stylesheet to update the attributes would be a lot faster. The portion of my xml that I would like to update is as follows:
<mychart>
<data>
<attributes>
<attribute name="title">Station Capacity: LAS</attribute>
</attributes>
<series id="Taxi In" name="Taxi In" type="Bar" color="Red">
<tooltip enabled="true">
<format>Series name: {%SeriesName}
Point value: {%Value}{numDecimals:0}
</format>
</tooltip>
<point id="03:00" name="07/22/2009 03:00" y="0" x="03:00"/>
<point id="03:15" name="07/22/2009 03:15" y="0" x="03:15"/>
<point id="03:30" name="07/22/2009 03:30" y="0" x="03:30"/>
</series>
<series id="At Gate" name="At Gate" type="Bar" color="Blue">
<tooltip enabled="true">
<format>Series name: {%SeriesName}
Point value: {%Value}{numDecimals:0}
</format>
</tooltip>
<point id="03:00" name="07/22/2009 03:00" y="0" x="03:00"/>
<point id="03:15" name="07/22/2009 03:15" y="0" x="03:15"/>
<point id="03:30" name="07/22/2009 03:30" y="0" x="03:30"/>
</series>
<series id="Taxi Out" name="Taxi Out" type="Bar" color="Gold">
<tooltip enabled="true">
<format>Series name: {%SeriesName}
Point value: {%Value}{numDecimals:0}</format>
</tooltip>
<point id="03:00" name="07/22/2009 03:00" y="0" x="03:00"/>
<point id="03:15" name="07/22/2009 03:15" y="0" x="03:15"/>
<point id="03:30" name="07/22/2009 03:30" y="0" x="03:30"/>
</series>
<series id="Scheduled" name="Scheduled" type="Marker">
<tooltip enabled="true">
<format>Series name: {%SeriesName}
Point value: {%Value}{numDecimals:0}
</format>
</tooltip>
<point id="03:00" name="07/22/2009 03:00" y="17" x="03:00"/>
<point id="03:15" name="07/22/2009 03:15" y="17" x="03:15"/>
<point id="03:30" name="07/22/2009 03:30" y="17" x="03:30"/>
</series>
</data>
</mychart>

Based on an update that I receive from my server, I would need to update the y attribute of the point node based on the point id and the series id which is the parent node of point. Can anyone help me with this?

Thanks

Postnext
Tony LavinioSubject: Help With Updating Attributes Using XSLT
Author: Tony Lavinio
Date: 14 Aug 2009 04:11 PM
Which version of XSLT, and which version of Stylus Studio are you using?

Postnext
Ron BernardSubject: Help With Updating Attributes Using XSLT
Author: Ron Bernard
Date: 14 Aug 2009 04:38 PM
We are evaluationg stylus studio 2009 and using xsl 1.0

Postnext
Tony LavinioSubject: Help With Updating Attributes Using XSLT
Author: Tony Lavinio
Date: 17 Aug 2009 09:35 AM
Well, I think you should do more than evaluate it, I think you should buy it :)

But in response to your query, the way to handle this is with what's called an "identity transform." You want to copy everything that is unchanged, and intercept and change only what you need to. This example passes in the change detail through three parameters: series_id, point_id, and then the new_y value.

<?xml version="1.0" encoding="US-ASCII"?>
<!-- The Identity Transformation -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="series_id"/>
<xsl:param name="point_id"/>
<xsl:param name="new_y"/>
<xsl:output method="xml" encoding="US-ASCII"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>

<xsl:template match="point">
<point id="{@id}" name="{@name}" x="{@x}">
<xsl:attribute name="y">
<xsl:choose>
<xsl:when test="../@id = $series_id and @id = $point_id">
<xsl:value-of select="$new_y"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@y"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</point>
</xsl:template>
</xsl:stylesheet>

Postnext
Ron BernardSubject: Help With Updating Attributes Using XSLT
Author: Ron Bernard
Date: 17 Aug 2009 07:55 PM
I tried this out and it works. Thanks so much for your help. A question I wanted to ask is our original method of updating attributes involed using XPath and javascript. Here is an example of how we accomplished this:

updtXmlDoc.selectSingleNode("//series[@id='Taxi In']/point[@id='03:00']").setAttribute("y",'22');

My question is, is it faster to use the xsl stylesheet, or use xpath, and is there a way to show or compare the two approaches in stylus studio?

Again thanks for your help.

Postnext
Tony LavinioSubject: Help With Updating Attributes Using XSLT
Author: Tony Lavinio
Date: 18 Aug 2009 08:42 AM
If the files are relatively small, there is probably no material
difference between the approaches, so you should use whichever is
simpler for you.

Postnext
Ron BernardSubject: Help With Updating Attributes Using XSLT
Author: Ron Bernard
Date: 20 Aug 2009 02:22 PM
We are roughly looking at about 600+ lines of xml. I guess the only issue I would have with the xslt approach is that I would not know if something changed or not.

Another action needs to be performed based on if the xml attribute has changed. With the xpath approach I can compare the value in the xml and then set some type of flag that lets me know that I need to perform the new action. The problem with this is I need to run the query twice. Once to do the comparison, and again to make the action update.

Is there a way to get a return value from xslt that would let me know if a value has changed and would therefore allow me to set the flag to perform the seperate action?

Thanks so much for your help.

Posttop
Tony LavinioSubject: Help With Updating Attributes Using XSLT
Author: Tony Lavinio
Date: 22 Aug 2009 04:40 PM
Unless you use extension functions, the only "return value" from
XSLT is the transformed output.

   
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.