Re: [xml] Possible bug in 2.7.2
- From: Daniel Veillard <veillard redhat com>
- To: Dave Connet <connet entelos com>
- Cc: xml gnome org
- Subject: Re: [xml] Possible bug in 2.7.2
- Date: Wed, 24 Jun 2009 11:01:51 +0200
On Thu, Oct 30, 2008 at 12:43:16PM -0700, Dave Connet wrote:
In generating some xslt, I think I've come across a bug...
test.xml:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<Root PathName="C:\Test Dir\">
<Note id="Id1"/>
</Root>
test.xsl
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="Root">
<HTML>
<head><title>Header</title></head>
<BODY>
<xsl:value-of select="/Root/@PathName"/><br/>tes
<xsl:apply-templates select="Note"/>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="Note">
<img>
<xsl:attribute name="width">415</xsl:attribute>
<xsl:attribute name="height">10</xsl:attribute>
<xsl:attribute name="src"><xsl:value-of
select="/Root/@PathName"/>images/myImage.gif</xsl:attribute>
</img>
<xsl:value-of select="@id"/><br/>
</xsl:template>
</xsl:stylesheet>
Both xalan and IE (browser,v7) produce the same results. xsltproc
doesn't:
Using xalan:
<HTML>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Header</title>
</head>
<BODY>C:\Test Dir\<br>tes
<img width="415" height="10" src="C:\Test
Dir\images/myImage.gif">Id1<br>
</BODY>
</HTML>
Using xsltproc:
<HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Header</title>
</head>
<BODY>C:\Test Dir\<br>tes
<img width="415" height="10"
src="C:%5CTest%20Dir%5Cimages/myImage.gif">Id1<br>
</BODY>
</HTML>
A posting on the xslt list mentioned that this could probably be
considered a bug in libxml2 - and pointed to htmlAttrDumpOutput in
HTMLtree.c.
libxml2 knows that the src attribute of img tag is an URI-Reference
and applies the URI-Reference escaping algorithm.
Your problem is that what you are giving as src attribute value is
a windows path and not an URI-Reference, that's the core of your problem
a windows path should not be put as an URI reference in an HTML page.
I'm not sure what the proper fix should be - I know in my case, simply
adding '\' and ' ' to the excluded chars would fix the above. I don't
know what other effects that might have... (and my generating code can
easily change '\' to '/' before generating the xml, needing only the
space added to the excluded chars then)
use a file:/// based URI to express your path
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel veillard com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]