xsl-list
[Top] [All Lists]

AW: substitute &#13; with <br/>

2003-08-07 08:14:04
Hello Andrew,

Andrew Welch wrote:
Hello Alexander,

this is probably a FAQ. It's also an XML topic not an XSLT one.

Look to 2.11 "End-Of-Line Handling" in the XML spec.

No, it's an html issue.  Carriage returns are normalised to a single
space (I think) so to recreate their behaviour you need to use <br />
<div /> <p /> etc.

No, the original issue is clearly an XML one, as he wrote:
   "I thought of doing it with entities in the source XML 
    like <!ENTITY #13 "<br/>">, but that doesn't work."


I think your best plan of action is to modify your xml to replace &_#13;
with <br /> (Im assuming that as you can insert entities this shouldn't
be too much trouble).  

This was exactly what Alexander was trying, without success. (or do
you mean: manually, with a text editor?)


If however that breaks a DTD or is not possible, you will have to use a
recursive named template that gets called from you text() matching
template.  This can then use substring-before() and substring-after() to
recursively replace what you need.

&_#13; cannot be matched or replaced with XSLT functions, as it has
been deleted by the XML parser.


String handling like this will be much easier in xslt 2.0

Cheers
andrew   

Regards,
Markus
__________________________
Markus Abt
Comet Computer GmbH
http://www.comet.de




 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



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