About XSL and CDATA HTML content management...

Hi,

I want to manage new line into tags contents. I'm working with a PHP web
site, using a PHP-XMLRPC client and then the XML data received is parsed
with a XSL script. This is the input XML data:

<?xml version="1.0" encoding="UTF-8"?>
<requirement identifier="aaaaaaaa" name="aaaaaaaaa" priority="high"
status="draft">
  <revision date="2004-11-25 13:29:22" label="aaaaaaaa">
    <author id="gelinp">Patrick Gelin</author>
    <comment><![CDATA[aaaaaaaa aaaaaaa]]></comment>
  </revision>
  <description><![CDATA[aaaaaaa<br /><br />
bbbbbbbb]]></description>
</requirement>

So, Firstly I tried to use \n with <comment> tag but XML-RPC replaced it
with a space... 

Then, I tried with <br> tag, it's ok for PHP-XMLRPC but the XSL script
(below) modify the HTML content tag and '<BR>' to '&lt;br /&gt;'...

The XSL script:
----------------
(...)
<td colspan="2">
  <out:attribute xmlns:out="http://www.w3.org/1999/XSL/Transform"
name="class">
  <out:value-of select="$CSSPrefix"/>FormData</out:attribute>
  <textarea name="req_description" cols="100" rows="10" style="width:100%">
    <out:if xmlns:out="http://www.w3.org/1999/XSL/Transform"
test="$ChangeHandler != ''">
      <out:attribute name="onChange">
        <out:value-of select="$ChangeHandler"/>
      </out:attribute>
    </out:if>
    <out:attribute xmlns:out="http://www.w3.org/1999/XSL/Transform"
name="class">
    <out:value-of select="$CSSPrefix"/>FormControl</out:attribute>
    <out:value-of xmlns:out="http://www.w3.org/1999/XSL/Transform"
select="normalize-space(/requirement/description)"/>
  </textarea>
</td>
(...)

and the HTML result:
----------------
(...)
<td colspan="2" class="FormData">
<textarea name="req_description" cols="100" rows="10" style="width:100%"
class="FormControl">aaaaaaa&lt;br /&gt;&lt;br /&gt; bbbbbbbb</textarea>
</td>
(...)

So, I'm asking myself why XSL modified my CDATA HTML section ? 

Thanks.

Received on Friday, 26 November 2004 09:48:46 UTC