javascript - 在 JavaScript 函数中解析同级文件夹

标签 javascript xml relative-path

我正在尝试将 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/

相关文章:

javascript - 如何从 github 存储库安装 NodeJS 包

javascript - jQuery - 滚动到 div 顶部后,我想动画/恢复固定的 div

python - 如何使用 Python 的 ElementTree 转义属性名称中的冒号?

php - 在 xPath 中选择子项

javascript - 交响乐团 : Using JavaScript in a onChange-event in a form and calling an action from the JS-Function

php - strtotime PHP,显示日期/时间

Linux 好像获得了很多 *at 调用?这些的动机是什么?

css - TYPO3-扩展名 : relative path for CSS image properties

java - 为什么此导入不起作用

javascript - Flowplayer 在 IE 下无法启动