Gadrin77 wrote:
I noticed when displaying the contents of a CDATA node inside a
TEXTAREA using
MSXML and XSL, I get an extra space before the data.
at first I thought I hadn't "tightened up" the XSL, but then even when
I did
this...
<textarea rows="24" cols="80"><xsl:value-of
select="/Root/Child/Data"/></textarea>
I still got a leading whitespace. During testing the data is only the
string "Unknown."
Is this common to others?
I noticed TEXTAREAs are a bit different when using XSL.
You haven't told us which version of MSXML you use and how you transform.
When I try the following ASP page with MSXML 4
<%@ Language="VBScript" %>
<%
Option Explicit
Dim XmlDocument, XslDocument, Loaded
Set XmlDocument = Server.CreateObject("Msxml2.DOMDocument.4.0")
XmlDocument.async = False
Loaded = XmlDocument.load(Server.MapPath("test20040503.xml" ))
If Loaded Then
Set XslDocument = Server.CreateObject("Msxml2.DOMDocument.4.0")
XslDocument.async = False
Loaded = XslDocument.load(Server.MapPath("test20040503Xsl.x ml"))
If Loaded Then
XmlDocument.transformNodeToObject XslDocument, Response
Else
Response.Write "Error loading stylesheet.<br>" & VbCrLf
End If
Else
Response.Write "Error loading XML file.<br>" & VbCrLf
End If
Set XmlDocument = Nothing
Set XslDocument = Nothing
%>
to transform the following XML
<?xml version="1.0" encoding="UTF-8"?>
<root><![CDATA[Kibology for all.]]></root>
with the following stylesheet that sets the output method to html
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8" />
<xsl:template match="/">
<html>
<head>
<title>textarea test</title>
</head>
<body>
<form action="">
<textarea rows="5" cols="80"><xsl:value-of select="root"
/></textarea>
</form>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
I do not get any leading spaces in the textarea, indeed the output of
the ASP page is the following HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>textarea test</title>
</head>
<body>
<form action=""><textarea rows="5" cols="80">Kibology for
all.</textarea></form>
</body>
</html>
Maybe you are not using html as your output method??
Even if I change the ASP page to use MSXML 3 (Msxml2.DOMDocument.3.0) I
don't get any whitespace.
--
Martin Honnen
http://JavaScript.FAQTs.com/