RE: [xsl] xsl and xml CDATA or Not question

Subject: RE: [xsl] xsl and xml CDATA or Not question
From: "John Hamman" <John@xxxxxxxxxxxxxxxxx>
Date: Fri, 12 Mar 2004 13:10:56 -0500
Woohoo. I got almost everything I wanted. Thanks for all the help guys.
Now whats left is to remove the 'xmlns=""' that is put in a lot of the code.
Any suggestions?

-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of John Hamman
Sent: Friday, March 12, 2004 12:22 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: RE: [xsl] xsl and xml CDATA or Not question

Thanks for your reply and help.
The extra </a> was left in by accident. I removed some code that didn't need
to be there in the <p> .
Forgive me for my improper terminology. I have now removed the CDATA and am
using xsl:copy-of.
But my problem is not rendering the Formated version, which comes out
perfect. My problem is in the text only XLS version. 

This is my current code with extras taken out to save room.

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; xmlns:asp="remove">
	<xsl:output method="xml" indent="yes" encoding="utf-8"
omit-xml-declaration="yes"/>
	<xsl:template match="/">
		<xsl:apply-templates/>
	</xsl:template>
	<xsl:template match="Page" xml:space="preserve">
		<xsl:text disable-output-escaping="yes">
			<html xmlns="http://www.w3.org/1999/xhtml";>
			<head>
			</head>
			<body>
				<xsl:apply-templates select="Content"/>
			</body>
		</html>
	</xsl:template>
<xsl:template match="Content" xml:space="preserve">
	 <xsl:copy-of select="node()"/>
</xsl:template>

<xsl:template match="//*/img">
	<xsl:for-each select="@*">
	[image: <xsl:value-of select="." />]
		<xsl:if test="((name()='alt') or (name()='ALT') or
(name()='Alt')) and (normalize-space(.)!='')">
			[image: <xsl:value-of select="." />]
		</xsl:if>
	</xsl:for-each>				
	<xsl:apply-templates />

	</xsl:template>
</xsl:stylesheet>



-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Peter Flynn
Sent: Friday, March 12, 2004 11:57 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] xsl and xml CDATA or Not question

On Fri, 2004-03-12 at 15:49, John Hamman wrote:
> hello experts, 
> If i have some html in a xml field like below. 

XML doesn't have "fields" -- they're for databases.
XML has elements.

> <Content><![CDATA[ <br/><br/><center><div id="TextOnlyLink"><a
> href="/page.aspx?textonly">[Text Only]</a></div> 
> <div id="centerImg"> 
> <img src="/pub/en-us/images/clear-path-soon.jpg" alt="the alt tag."
> width="712" height="223"/> 
> </div> 
> <p>blah blah blah</a> 
> </p> 
> </center>]]> 
> </Content> 

But that isn't HTML any more. Putting it in a CDATA section 
means you want it treated as plain text. That's what CDATA
sections are for. What is wrong with (indents added for
illustration only):

  <Content>
    <br/>
    <br/>
    <center>
      <div id="TextOnlyLink">
        <a href="/page.aspx?textonly">[Text Only]</a>
      </div>
      <div id="centerImg">
        <img src="/pub/en-us/images/clear-path-soon.jpg" 
          alt="the alt tag" width="712" height="223"/>
      </div> 
      <p>blah blah blah*</p> 
    </center>
  </Content> 

* I've removed the spurious </a> which must be a corruption.
If you are being supplied with this by someone else, tell 
them to generate well-formed XHTML otherwise it can't be 
processed. They've taken the trouble to add the / at the
end of the <img/> element, so I'm not clear why they felt
it important to add a meaningless </a> and then deliberately prevent it
being used as XHTML.

> my formated xsl is just this 
> <xsl:value-of select="//Content" disable-output-escaping="yes"/> 

With the above you can use the xsl:copy-of that David
suggests.

> but my question is how do i take that contnet and be able to use it in a
way
> with another "text only" xsl sheet that might make it output like this 
> 
> <a href="/page.aspx">[Formated]</a> 
> [img: the alt tag] 
> <p>blah blah blah<p> 

Tip: alt is not a tag, it's an attribute on the img element type.

> Any ideas. Im sure im missing something somewhere. Should i get rid of the
> CDATA and figure a way to output it as regular HTML in the formated
version?

Yes. If it's XHTML, then handle it as such. 

///Peter



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



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



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


Current Thread