[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: CDATA to XML - work with transformed Nodes - how d
Subject: Re: CDATA to XML - work with transformed Nodes - how does it work?
From: "Imsieke, Gerrit, le-tex" <gerrit.imsieke@xxxxxxxxx>
Date: Sun, 21 Mar 2010 00:13:33 +0100
|
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></SPAN><SPAN STYLE="font-size: 10px;">(1)&#9;Das Angebot
auf Abschluss dieser Vereinbarung besitzt eine G&uuml;ltigkeit von sechs
Monaten nach Versand (Datum des Poststempels). Nach Annahme durch den Vermittler durch
Unterschrift und R&uuml;cksendung gelten die K&uuml;ndigungsregelungen
gem&auml;&szlig;&sect; 7 dieser Vereinbarung.</DATA>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA>(2)&#9;Die Vertragsabwicklung erfolgt ausschlie&szlig;lich&uuml;ber die
Firma in Vertretung bzw. als Empfangsbotin der Gesellschaft.</DATA>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA>(3)&#9;Es gilt das Recht der Bundesrepublik Deutschland. Erf&uuml;llungsort
und Gerichtsstand sind M&uuml;n-chen.</DATA>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA>(4)&#9;M&uuml;ndliche Nebenabreden sind nicht getroffen.&Auml;nderungen
und Erg&auml;nzungen dieses Vertrages bed&uuml;rfen der Schriftform. Dies gilt
auch f&uuml;r eine&Auml;nderung dieser Schriftformklausel.</DATA>
</COL>
<COL>
<DATA/>
</COL>
<COL>
<DATA>(5)&#9;Sollten eine oder mehrere Bestimmungen dieses Vertrages ganz oder teilweise
unwirksam sein oder sich als undurchf&uuml;hrbar erweisen, so wird die Wirksamkeit
des Vertrages im&Uuml;brigen hier-von nicht ber&uuml;hrt. Die Parteien werden
die ganz oder teilweise unwirksamen oder undurchf&uuml;hr-baren Bestimmungen durch
eine wirksame Bestimmung ersetzen, die dem wirtschaftlich gewoll-ten Zweck entspricht
und dem Inhalt der zu ersetzenden Bestimmung m&ouml;glichst nahe kommt. Dies gilt
entsprechend, wenn sich herausstellt, dass der Vertrag Regelungsl&uuml;cken
enth&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.
--
Gerrit Imsieke
Geschdftsf|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.imsieke@xxxxxxxxx, http://www.le-tex.de
Registergericht / Commercial Register: Amtsgericht Leipzig
Registernummer / Registration Number: HRB 24930
Geschdftsf|hrer: Gerrit Imsieke, Svea Jelonek,
Thomas Schmidt, Dr. Reinhard Vvckler
|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
RSS 2.0 |
|
Atom 0.3 |
|
|