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
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

 
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.