我正在尝试将 XML 和 XSLT 的两条路径传递给 JavaScript 函数。在下面的示例 HTML 中,“../xsl/filename
”的使用似乎在 xslt() 函数中对我不起作用。如果我将路径指定为“./filename
”,尽管这确实有效。
有谁知道我可以如何解决这个问题或找到某种方法来指定没有绝对路径引用的同级文件夹?我宁愿不必更改我的文件路径,因为我的开发环境是使用以特定方式构建的 xslt、示例数据和源代码设置的。
提前致谢 杰门
<html>
<head>
<title></title>
<script type="text/javascript" src="../lib/jsunit/app/jsUnitCore.js"></script>
<script type="text/javascript" src="../lib/jquery-1.2.3.js"></script>
<script type="text/javascript" src="../lib/jquery.xslt.js"></script>
</head>
<body>
<div id="bla"></div>
<script type="text/javascript">
$('#bla').xslt("../sampledata/response1.xml", "../xslt/resultFormatter.xsl");
//function testjQuery() {
// $('#bla').xslt("../sampledata/response1.xml", "../xslt/resultFormatter.xsl");
//}
</script>
</body>
</html>
最佳答案
一个活生生的例子可以让我以最快的方式深入了解这一点,但取而代之的是..
恐怕您将不得不进行一些调试。
您可以引用至少一层深度的相对路径,因为拉入 JS 源文件的 header 也会这样做,因此排除了网络服务器的问题。
处理和提取资源似乎发生在客户端,因此打开 Firebug 控制台或其他可以让您查看 JS 环境中发生的事情的东西。
如果你在那里画了一个空白,请深入研究源代码。
看看里面的源码,
http://johannburkard.de/software/xsltjs/apidoc/overview-summary-jquery.xslt.js.html
有两条不同的路,
if (document.recalc) { // IE 5+
// EDIT : Path 1
} else if ( /* EDIT : conditions */) { // Mozilla 0.9.4+, Opera 9+
// EDIT : Path 2
} // EDIT : No final else, so a silent failure
第二个让你伤心的参数与正则表达式匹配,
var str = /^\s*</;
在两条路上。无论您要走哪条路,设置一个断点并自己测试这些案例(使用您一直使用的两个 xslt 参数值)。消除可能性并继续沿着处理链向下移动,直到找到故障点。
我猜在原作者没有预料到相对路径的地方存在正则表达式匹配/字符串处理错误。
关于javascript - 在 JavaScript 函数中解析同级文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2588643/