disable-output-escaping

T

Troot

Hi All,

I was wondering if someone could clear this up for me. I have
constructed a sample for a bigger problem I'm having. So, given the xml
file:

<?xml-stylesheet href="test.xsl" type="text/xsl"?>
<test>
<p><![CDATA[<b>This is bolded</b>]]></p>
</test>

and the stylesheet:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="main" match="/">
<all_screens>
<xsl:value-of disable-output-escaping="yes" select="/test/p" />
</all_screens>
</xsl:template>
</xsl:stylesheet>

can some one twll me why the output is &lt;b&gt;This is
bolded&llt;/b&gt; instead of <b>This is bolded</b> (which is what I
thought disable-output-escaping is supposed to do)?

I've tried this with IE and Firefox and both make a mess of it.

Thanks
John
 
T

Troot

sorry, google seems to of interpreted the &-lt-; and &-gt-; sign at the
line "why the output is"
 
M

Martin Honnen

Troot wrote:

<xsl:value-of disable-output-escaping="yes" select="/test/p" />
can some one twll me why the output is &lt;b&gt;This is
bolded&llt;/b&gt; instead of <b>This is bolded</b> (
I've tried this with IE and Firefox and both make a mess of it.

disable-output-escaping as yes is an optional feature that does not have
to be supported and usually is not supported if the XSLT processor does
not serialize the result tree. Firefox does not support
disable-output-escaping at all.
 
H

HoopsBhoy

Troot said:
Hi All,

I was wondering if someone could clear this up for me. I have
constructed a sample for a bigger problem I'm having. So, given the xml
file:

<?xml-stylesheet href="test.xsl" type="text/xsl"?>
<test>
<p><![CDATA[<b>This is bolded</b>]]></p>
</test>

and the stylesheet:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="main" match="/">
<all_screens>
<xsl:value-of disable-output-escaping="yes" select="/test/p" />

Dude I could kiss you. You've just helped me out in a major way!
 
P

Peter Flynn

Troot said:
Hi All,

I was wondering if someone could clear this up for me. I have
constructed a sample for a bigger problem I'm having. So, given the xml
file:

<?xml-stylesheet href="test.xsl" type="text/xsl"?>
<test>
<p><![CDATA[<b>This is bolded</b>]]></p>
</test>

Read what the FAQ has to say about CDATA first:
http://xml.silmaril.ie/authors/cdata/
and the stylesheet:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="main" match="/">
<all_screens>
<xsl:value-of disable-output-escaping="yes" select="/test/p" />
</all_screens>
</xsl:template>
</xsl:stylesheet>

can some one tell me why the output is &lt;b&gt;This is
bolded&llt;/b&gt; instead of <b>This is bolded</b> (which is what I
thought disable-output-escaping is supposed to do)?

I've tried this with IE and Firefox and both make a mess of it.

Browsers don't support disable-output-escaping. I just ran the above
through Saxon and it produced:

<all_screens><b>This is bolded</b></all_screens>

But why go to all that bother? Why not just say

<xsl:template match="/">
<all_screens>
<xsl:apply-templates select="/test/p"/>
</all_screens>
</xsl:template>

<xsl:template match="b">
<b>
<xsl:apply-templates/>
</b>
</xsl:template>

and remove the CDATA section?

///Peter


///Peter
 
T

Troot

Peter said:
Troot said:
Hi All,

I was wondering if someone could clear this up for me. I have
constructed a sample for a bigger problem I'm having. So, given the xml
file:

<?xml-stylesheet href="test.xsl" type="text/xsl"?>
<test>
<p><![CDATA[<b>This is bolded</b>]]></p>
</test>

Read what the FAQ has to say about CDATA first:
http://xml.silmaril.ie/authors/cdata/
and the stylesheet:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="main" match="/">
<all_screens>
<xsl:value-of disable-output-escaping="yes" select="/test/p" />
</all_screens>
</xsl:template>
</xsl:stylesheet>

can some one tell me why the output is &lt;b&gt;This is
bolded&llt;/b&gt; instead of <b>This is bolded</b> (which is what I
thought disable-output-escaping is supposed to do)?

I've tried this with IE and Firefox and both make a mess of it.

Browsers don't support disable-output-escaping. I just ran the above
through Saxon and it produced:

<all_screens><b>This is bolded</b></all_screens>

But why go to all that bother? Why not just say

<xsl:template match="/">
<all_screens>
<xsl:apply-templates select="/test/p"/>
</all_screens>
</xsl:template>

<xsl:template match="b">
<b>
<xsl:apply-templates/>
</b>
</xsl:template>

and remove the CDATA section?

///Peter


///Peter

Thanks Peter and Martin, thats very helpful ;o)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,050
Latest member
AngelS122

Latest Threads

Top