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)
-> + Use of before and after string (3) Sticky Topic
-> - How do I substitute element ty... (1)
-> + How does one add working days ... (4)
-> - Help, I have existing XLT and... (1)
-> + Need help on XSLT issue - (2)
-> + EDI to XML Conversion (7)
-> - XML To JSON Conversion using X... (1)
-> + Formatting Paragraphs to same ... (2)
-> - Grouping of records (1)
-> + Problems with xsd 1.1 (4)
-> + XML to HL7 mapping (3)
-> + XSLT 3 and Iterate (2)
-> + XSL-FO to PDF preview (3)
-> + java.lang.RuntimeException: Er... (2)
-> + Create Acroforms with Stylus X... (2)
-> + How to change XSLT parameter s... (3)
-> + how to change format of the da... (2)
-> + Search "Next 8 Results " doesn... (2)
-> - Support for Git (1)
-> + newbee (8)
-- [1-20] [21-40] [41-60] Next
+ XQuery Help and Discussion (2017)
+ Stylus Studio FAQs (159)
+ Stylus Studio Code Samples & Utilities (364)
+ Stylus Studio Announcements (113)
Topic  
Postnext
Marek KucharikSubject: finding connection between escaped text and elements...
Author: Marek Kucharik
Date: 27 Dec 2005 05:58 AM
Hello all there,

I have problem with finding in text which has escaped elements;

<?xml version="1.0" encoding="UTF-8"?>
<DISPLAY>
<PLANE_1>
<row>
<rowOrder>5</rowOrder>
<column>&lt;code value="2312" /&gt;&lt;text&gt;this is testing text&lt;/text&gt;</column>
</row>
</PLANE_1>
<CODELIST>
<row>
<code>2312</code>
<col_1>CODE1</col_1>
<col_2>CODE2</col_2>
<col_3>CODE3</col_3>
<col_4>CODE4</col_4>
</row>
<row>
<code>2332</code>
<col_1>CODE10</col_1>
<col_2>CODE20</col_2>
<col_3>CODE30</col_3>
<col_4>CODE40</col_4>
</row>

</CODELIST>
</DISPLAY>
I want to get xml like this:
<?xml version="1.0" encoding="UTF-8"?>
<plane number="1">
<listcode>CODE1 CODE2 CODE3 CODE4</listcode>
<text>this is testing text</text>
</plane>
&lt;code value="2312" /&gt; -> reference to CODELIST to "row" with code = 2312

Please, help me :( I'm lost :(.

Thank you so much in advance.

I'm using this transformation:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="<a href="<a href="http://www.w3.org/1999/XSL/Transform"">">http://www.w3.org/1999/XSL/Transform"</a>">">http://www.w3.org/1999/XSL/Transform""><a href="http://www.w3.org/1999/XSL/Transform"</a></a>">">http://www.w3.org/1999/XSL/Transform"</a></a></a> version="1.0">
<xsl:output method="xml" omit-xml-declaration="no" indent="yes"/>
<xsl:template match="DISPLAY">
<xsl:apply-templates select="node()[substring(local-name(), 1, 5) = 'PLANE'] "/>
</xsl:template>
<xsl:template match="*">
<xsl:element name="plane">
<xsl:attribute name="number"><xsl:value-of select="position()"/></xsl:attribute>
<xsl:for-each select="row/*[local-name() = 'column']">
<xsl:value-of select="normalize-space(current())" disable-output-escaping="yes"/>
</xsl:for-each>
</xsl:element>
</xsl:template>
</xsl:stylesheet>


Postnext
Minollo I.Subject: finding connection between escaped text and elements...
Author: Minollo I.
Date: 27 Dec 2005 12:20 PM
If you want to be able to run XPath expressions on the escaped segment, you will have first to make it become a "parsed" document fragment. That's not possible in standard XSLT; if you run Saxon, you can use an extension function (saxon:parse()) and do something like:
<xsl:variable name="myInfo" xmlns:saxon="http://saxon.sf.net/">
<xsl:copy-of select="saxon:parse(concat('&lt;root&gt;',DISPLAY/PLANE_1/row/column,'&lt;/root&gt;'))"/>
</xsl:variable>

(where you can change the DISPLAY/PLANE... expression with the one computed in the proper context)

Once you do that, you'll be able to run queries against $myInfo.

Hope this helps,
Minollo

Postnext
Marek KucharikSubject: finding connection between escaped text and elements...
Author: Marek Kucharik
Date: 28 Dec 2005 02:29 AM
Hello Minollo,

I dont understand how to run queries against result from saxon:parse. $myInfo returns only values for all nodes from escaped node-set and I only need value from node <code>.

Do you have any idea? I'm really beginner...

Best regards,

Marek

Postnext
Minollo I.Subject: finding connection between escaped text and elements...
Author: Minollo I.
Date: 28 Dec 2005 03:21 PM
Assuming $myInfo is assigned the way I suggested, $myInfo/root/code/@value will return "2312" in your example; $myInfo/root/text will return "this is testing text".

Minollo

Posttop
Marek KucharikSubject: finding connection between escaped text and elements...
Author: Marek Kucharik
Date: 29 Dec 2005 01:57 AM
Hello Minollo,

I have found an error in my code, that's why I was blind. :(

Thank you very much for your help!

Everything works perfect!

Best regards,

Marek

   
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.