xsl-list
[Top] [All Lists]

Re: [xsl] CDATA to XML - work with transformed Nodes - how does it work?

2010-03-20 18:14:07
It has been on this list just a couple of hours ago, accidentally: You might apply saxon:parse to the CDATA content (http://www.saxonica.com/documentation/extensions/functions/parse.html). Please note that you need at least Saxon PE to use this extension function (or Saxon 9.1). But if you can control how your XML input is generated: maybe it's a better approach to use namespaces, putting proper XHTML content where there is CDATA now. Then you'll be able to process it without extension functions and without serializing it first.

Gerrit

On 20.03.2010 23:58, [x] cross solution wrote:
Hi All,

i need help in working with a transformed CDATA to XML nodes.
The idea / the process
- The CDATA of the node includes the XHTML text (comes from the database)
- Transform the XHMTL text to XML nodes
- work with the transformed nodes with<xsl:choose>  <xsl:when>  and create new 
nodes.
The result should be a Textfile, based on Word/OpenOffice.

My Problem is now to work with the transformed XML nodes. I can't work with it. 
I can create an XML file output with the XHTML as XML nodes, but I can't get it 
in the XSLT file, before an output is created.

So my question is:
Is it possible to get the XHTML nodes in the XSLT file to work with it?
Maybe i need another process to realize it - other ideas?

thanks for your help and ideas.

armin


XML File
<?xml version="1.0" encoding="UTF-8"?>
<ROW>
<COL>
<DATA>&lt;/SPAN&gt;&lt;SPAN STYLE=&quot;font-size: 
10px;&quot;&gt;(1)&amp;#9;Das Angebot
auf Abschluss dieser Vereinbarung besitzt eine G&amp;uuml;ltigkeit von sechs
Monaten nach Versand (Datum des Poststempels). Nach Annahme durch den 
Vermittler durch
Unterschrift und R&amp;uuml;cksendung gelten die K&amp;uuml;ndigungsregelungen
gem&amp;auml;&amp;szlig;&amp;sect; 7 dieser Vereinbarung.</DATA>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA>(2)&amp;#9;Die Vertragsabwicklung erfolgt 
ausschlie&amp;szlig;lich&amp;uuml;ber die
Firma in Vertretung bzw. als Empfangsbotin der Gesellschaft.</DATA>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA>(3)&amp;#9;Es gilt das Recht der Bundesrepublik Deutschland. 
Erf&amp;uuml;llungsort
und Gerichtsstand sind M&amp;uuml;n-chen.</DATA>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA>(4)&amp;#9;M&amp;uuml;ndliche Nebenabreden sind nicht 
getroffen.&amp;Auml;nderungen
und Erg&amp;auml;nzungen dieses Vertrages bed&amp;uuml;rfen der Schriftform. 
Dies gilt
auch f&amp;uuml;r eine&amp;Auml;nderung dieser Schriftformklausel.</DATA>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA>(5)&amp;#9;Sollten eine oder mehrere Bestimmungen dieses Vertrages ganz 
oder teilweise
unwirksam sein oder sich als undurchf&amp;uuml;hrbar erweisen, so wird die 
Wirksamkeit
des Vertrages im&amp;Uuml;brigen hier-von nicht ber&amp;uuml;hrt. Die Parteien 
werden
die ganz oder teilweise unwirksamen oder undurchf&amp;uuml;hr-baren 
Bestimmungen durch
eine wirksame Bestimmung ersetzen, die dem wirtschaftlich gewoll-ten Zweck 
entspricht
und dem Inhalt der zu ersetzenden Bestimmung m&amp;ouml;glichst nahe kommt. 
Dies gilt
entsprechend, wenn sich herausstellt, dass der Vertrag Regelungsl&amp;uuml;cken
enth&amp;auml;lt.</DATA>
</COL>
</ROW>



XSLT File
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl"; version="1.0"
xmlns:my="http://www.myhome.com/xmlresult";>
<xd:doc scope="stylesheet">
<xd:desc>
<xd:p><xd:b>Created on:</xd:b>  Mar 20, 2010</xd:p>
<xd:p><xd:b>Author:</xd:b>  myname</xd:p>
<xd:p/>
</xd:desc>
</xd:doc>
<xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/>
<xsl:template match="/">
<MyText>
<xsl:for-each select="my:ROW/my:COL/my:DATA">
<xsl:call-template name="xOutput">
<xsl:with-param name="xString" select="." />
</xsl:call-template>
</xsl:for-each>
</MyText>
</xsl:template>

<xsl:template name="xOutput">
<xsl:param name="xString"/>
<xsl:value-of select="$xString" disable-output-escaping="yes"/>
</xsl:template>

</xsl:stylesheet>



NEEDED
After the xsl:template xOutput should be a check<xsl:choose>  and create new 
nodes as needed.
(Idea only)
<xsl:template name="xNewNodes">
<xsl:param name="xString"/>
<xsl:for-each select="/SPAN">
<xsl:choose>
<xsl:when test="contains($xString, 'color:')">
<NewNote>
<Color/>  <!-- spec of color -->
</NewNote>
</xsl:when>
</xsl:choose>
<xsl:choose>
<xsl:when test="contains($xString, 'font-weight:')">
<NewNote>
<FontWeight/>  <!-- spec of Font -->
</NewNote>
</xsl:when>
</xsl:choose>
</xsl:for-each>
</xsl:template>


PS.: This is also posted at 
http://www.stylusstudio.com/SSDN/default.asp?action=9&read=9002&fid=48, because 
i thougth it is this xsl list.
--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--
Gerrit Imsieke
Geschäftsführer / Managing Director
le-tex publishing services GmbH
Weissenfelser Str. 84, 04229 Leipzig, Germany
Phone +49 341 355356 110, Fax +49 341 355356 510
gerrit(_dot_)imsieke(_at_)le-tex(_dot_)de, http://www.le-tex.de

Registergericht / Commercial Register: Amtsgericht Leipzig
Registernummer / Registration Number: HRB 24930

Geschäftsführer: Gerrit Imsieke, Svea Jelonek,
Thomas Schmidt, Dr. Reinhard Vöckler

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>