javascript处理xsl时的document()方法问题

发布于 2024-10-22 04:47:04 字数 1690 浏览 2 评论 0原文

我的问题是当我使用 javascript 进行 xslt 处理时,WebKit 无法处理 xslt document() 方法。当我在 xml 中包含 xsl 文件并从浏览器调用 xml 文件时,它可以工作。但是当我使用 javascript 来处理这个过程时,它崩溃了。我必须使用 javascript 将参数传递给 xsl 文件。所以我的生活离不开javascript。 这是html部分。

<html>
<head>
    <script language="javascript" src="./js/jquerymin.js"></script>
    <script language="javascript" src="./js/jquery.transform.js"></script>
<script>

$(document).ready(function(){
    $("#example").transform({xml:"sample.xml", xsl:"sample.xsl", xslParams:{scan:'system',sub:'lan'}});
});
</script>
</head>
<body >
<div id="example" ></div>
</body>
</html>

这是基本的 xsl 文件,使用这种方法会崩溃:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:nsm="http://xxxxx.com/yyyyy/system"
                xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xsl:param name="scan" select="'system'"/>
<xsl:param name="sub" select="'lan'"/>

<xsl:output method="html"/>  

<xsl:template match="/">
        <xsl:variable name="xsdFile" select="document('sample.xsd')"/>
        <xsl:for-each select="$xsdFile">
               ssss
        </xsl:for-each>
</xsl:template>

</xsl:stylesheet>

正如我所说,当我让 javascript 进行转换时它不起作用。但是当我从浏览器调用 xml 文件时它可以工作。

这是一个错误还是我在这里错过了一些东西?

谢谢,

编辑: http://plugins.jquery.com/project/Transform 这是jquery我用的插件。顺便说一句,其他浏览器(例如 firefox 和 opera)可以非常完美地处理这两种方式

My problem is WebKit cannot handle xslt document() method when i use javascript to do xslt processing. When I include xsl file in xml and call xml file from browser it work. But when I use javascript to handle this process, it crashes. I have to use javascript to pass parameters to xsl file. So I cannot live without javascript.
Here is html part.

<html>
<head>
    <script language="javascript" src="./js/jquerymin.js"></script>
    <script language="javascript" src="./js/jquery.transform.js"></script>
<script>

$(document).ready(function(){
    $("#example").transform({xml:"sample.xml", xsl:"sample.xsl", xslParams:{scan:'system',sub:'lan'}});
});
</script>
</head>
<body >
<div id="example" ></div>
</body>
</html>

Here is basic xsl file which crashes with this approach:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:nsm="http://xxxxx.com/yyyyy/system"
                xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xsl:param name="scan" select="'system'"/>
<xsl:param name="sub" select="'lan'"/>

<xsl:output method="html"/>  

<xsl:template match="/">
        <xsl:variable name="xsdFile" select="document('sample.xsd')"/>
        <xsl:for-each select="$xsdFile">
               ssss
        </xsl:for-each>
</xsl:template>

</xsl:stylesheet>

As I said it does not work while I let javascript to do transformation.But when I call xml file from browser it works.

Is this a bug or I miss something here?

Thanks,

edit: http://plugins.jquery.com/project/Transform this is the jquery plugin I use. By the way other browsers such as firefox and opera can handle both ways quite perfect

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

森罗 2024-10-29 04:47:04

错误 14101 - XSLTProcessor 不接受节点作为参数值

我一直在等待WebKit 团队修复这个 bug 已经有一段时间了(它从 2007 年中期开始开放)。

如果有人知道加快此修复的方法,请插话。

Bug 14101 - XSLTProcessor does not accept Nodes as parameter values

I've been waiting for the WebKit team to fix this bug for quite a while (it's been open since mid-2007).

If somebody knows of a way to expedite this fix please chime in.

意中人 2024-10-29 04:47:04

Alejandro,要在 XSLT 中工作 document(),您需要使用转换插件的服务器端

Alejandro, to work document() in XSLT you need use the server-side of the transform plug-in

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文