2010-04-06 20 views
0

我正在嘗試爲XML和XSLT傳遞兩個JavaScript函數路徑。看起來在下面的示例HTML中,使用「../xsl/filename」在xslt()函數中不適用於我。如果我指定路徑爲「./filename」,雖然這確實有效。在JavaScript中解析sibling文件夾功能

有誰知道我可以如何解決這個問題或找到一些方法,我可以指定一個兄弟文件夾沒有絕對路徑引用?我不希望更改我的文件路徑,因爲我的開發環境是通過以特定方式構建的xslt,示例數據和源代碼來設置的。

在此先感謝 Jamen

<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> 

回答

1

一個活生生的例子給我來向下鑽取這種最快捷的方式,但在代稱..

你將不得不做恐怕有點調試了。

您可以引用相對路徑至少一個深度,因爲拉入JS源文件的頭文件也會這樣做,因此排除了Web服務器的問題。

處理和拉動資源似乎發生在客戶端,所以打開一個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參數值)。消除可能性並繼續沿着加工鏈向前發展,直到找到失敗點。

我想,有一個正則表達式匹配/字符串處理錯誤的地方,原來的作者沒有預料到相對路徑。