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
Andrea BermanSubject: Selecting child nodes to output
Author: Andrea Berman
Date: 12 Jan 2006 03:26 PM
I have two places where the same data is displayed but there are different rules for each place as to how they are displayed.

Place #1 has a template, matching on the node name, and is the main display for the data on the page.

Place #2 takes the same data, but only *part* of it and its child nodes, and leaves out the rest of the child nodes.

Let me try to illustrate this as an example.

<mainnode>
<parentnode1>
Lots of text <child_node1>with flashing colors</child_node1>!
<child_node2>really really long paragraph that goes on forever and a day</child_node2>
</parentnode1>
<parentnode2>
etc...
</parentnode2>
</mainnode>

One section will display everything in parentnode1, and another section will only display the text plus child_node1, but not child_node2. I have a template match to do the entire display (it's recursive and multiple nodes of the same name can be under child nodes) and am trying to figure out how to do the section that only displays the text plus child_node1. Is this possible?

Note: I do have a separate section for using the "mode" attribute as suggested on another forum, but no one so far has helped me with only outputting particular child nodes versus others.


Thanks!

Postnext
Tony LavinioSubject: Selecting child nodes to output
Author: Tony Lavinio
Date: 12 Jan 2006 04:46 PM
It's too hard to tell from what you've given; if you want to send
the actual files, you can send to stylus-field-report (at) progress.com

Is this a Stylus Studio related question? Or an XSLT question in
general? We like to help, but hard questions that aren't Stylus
related get pushed to the back burner when things get busy.

In other words, if you're not a user, why not try a free download
today! ;) http://www.stylusstudio.com/xml_download.html

But if you email the files, we'll try to take a look.

Postnext
Andrea BermanSubject: Selecting child nodes to output
Author: Andrea Berman
Date: 13 Jan 2006 10:38 AM
Originally Posted: 13 Jan 2006 10:25 AM
It is an XSLT question in general, and I found this forum while looking for a good XML editor. Is there a trial version, and if so, does it expire? This is code I'm doing at work, so emailing you the files is rather out of the question. But I can show you the part of the code that is giving me the trouble: <mainnode> <parentnode1> Lots of text <child_node2>really really long paragraph that goes on forever and a day></child_node2> </parentnode1> <parentnode2> etc... Here's what I have so far, but it only outputs the text, and completely ignores ALL of the rest of the nodes, and I need child_node1: <xsl:apply-templates select="parentnode1" mode="chk_value" /> .. <xsl:template match="parentnode1" mode="chk_value"> <xsl:apply-templates mode="chk_value"/> </xsl:template> <xsl:template match="text()" mode="chk_value"> <xsl:value-of select="." /> </xsl:template> <xsl:template match="child_node1" mode="chk_value"> <xsl:choose> <xsl:when test="@role='bold'"> <b><xsl:value-of select="." /></b> </xsl:when> <xsl:otherwise> <xsl:value-of select="." /> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template match="child_node2" mode="chk_value" /> <xsl:template match="child_node3" mode="chk_value" /> Hope this helps! And thanks....

Postnext
Tony LavinioSubject: Selecting child nodes to output
Author: Tony Lavinio
Date: 13 Jan 2006 10:51 AM
The link that was posted does point to a trial version. It does
expire eventually, but it is a fully-functional version.

To copy nodes with all children, try xsl:copy-of. I'd get rid
of the template that matches text(); it doesn't help anything.
xsl:copy-of won't trigger template matching, so you can be
assured you'll get the full output. Remember that using xsl:value-of
just outputs the string value, not the nodes themselves.

To copy nodes with selected children, do the apply-templates,
and have templates to catch and process just the elemnts you care
about. To "eat" an element, just use <xsl:template match="blah"/>.

As for choosing XML IDEs, there is only one choice. :) I'm not
naming any names, but it begins with Stylus...

Postnext
Andrea BermanSubject: Selecting child nodes to output
Author: Andrea Berman
Date: 13 Jan 2006 11:14 AM
Yeah, I'm using the text node to process the text in order to remove bad characters (there's this annoying "&amp;#xD;&amp;#xA;" string that keeps showing up).

So, use copy-of instead of the xsl:apply-templates mode="chk_value" tag? I'll give it a shot!

I downloaded the trial version. If I can get my coworkers in on it and depending on costs we might be able to convince IT to purchase the license. In the meantime, I'll have fun with it. :)

Posttop
Tony LavinioSubject: Selecting child nodes to output
Author: Tony Lavinio
Date: 13 Jan 2006 10:37 PM
&amp;#xD;&amp;#xA; is a double-escaped carriage-return/linefeed
pair. Someone giving you the file is escaping it twice, it seems.

Have fun with Stylus! We certainly do.

 
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.