[webkit-help] XSLTProcessor: transformToFragment returns HTMLElement even with method="xml"
Gregoire
webkit-help at artefarita.com
Sun Sep 12 06:36:41 PDT 2010
Hi again,
I've created a test-case so that it is easier to answer my question.
The included files are a XForms application. So, for this test-case to
work, you need to download XSLTForms from the "XML Data Island" branch,
with the following svn command:
svn -r 448 co
https://xsltforms.svn.sourceforge.net/svnroot/xsltforms/branches/dataisland
xsltforms-data-island-448
Put the attached files "test-chrome-xslt.xml" and "test-chrome-xslt.js"
in the directory containing the "xsltforms-data-island-448" directory.
Then open the file in both Firefox and in a WebKit based browser (it
seems necessary to open the file through a local web server with WebKit,
otherwise you get a blank white screen).
In the debugger, add a watch expression on
"myInstance.childNodes[0].childNodes", and put a breakpoint on line 12
of "test-chrome-xslt.js".
Then click in the drop-down menu. You will see:
0:Element
1:Element
2:Element
3:Element
4:Element
which is normal because it is before the sorting.
After a second click in the drop-down menu, you will see:
0:Element
1:HTMLElement
2:HTMLElement
3:HTMLElement
4:HTMLElement
And then everything will disappear because "transformToFragment" (line
20) doesn't seem able to work with "HTMLElement"s.
If this is a bug, please tell me and I will fill a bug report.
Regards,
Gregoire
Le 12/09/2010 13:29, Gregoire a écrit :
> Hi,
>
> I'm trying to sort a XML Data Island using XSLTProcessor. My XSL is:
>
> <xsl:stylesheet version="2.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="">
> <xsl:output method="xml" encoding="utf-8"
> omit-xml-declaration="yes" indent="no"/>
> <xsl:strip-space elements="*"/>
> <xsl:template match="/dummy">
> <xsl:apply-templates select="announce[position() > 1]">
> <xsl:sort data-type="number" select="price" order="ascending"/>
> </xsl:apply-templates>
> </xsl:template>
> <xsl:template match="*|@*|text()">
> <xsl:copy>
> <xsl:apply-templates select="*|text()|@*"/>
> </xsl:copy>
> </xsl:template>
> </xsl:stylesheet>
>
> As you can see, I use the method="xml" attribute in <xsl:output>. In
> Firefox, using method="xml" returns Element nodes and the program works
> as expected (I can sort any number of times the XML Data Island).
>
> However, WebKit's implementation of "requestToFragment" seems to always
> return HTMLElement nodes, and after the first sort which works ok (but
> transforms my Elements to HTMLElements), it always return an empty
> nodeset (as if HTMLElements weren't found by the above XSL).
>
> Is it possible to tell WebKit's XSLTProcessor to return Elements instead
> of HTMLElements? If so, what could be the problem with my XSL stylesheet?
>
> Thanks!
> Gregoire
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test-chrome-xslt.xml
Type: text/xml
Size: 3020 bytes
Desc: not available
URL: <http://lists.webkit.org/pipermail/webkit-help/attachments/20100912/49b13de1/attachment.xml>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test-chrome-xslt.js
Type: application/javascript
Size: 1916 bytes
Desc: not available
URL: <http://lists.webkit.org/pipermail/webkit-help/attachments/20100912/49b13de1/attachment.bin>
More information about the webkit-help
mailing list