2010-04-06 4 views
0

JavaScript 함수에 XML 및 XSLT의 두 경로를 전달하려고합니다. 아래의 샘플 HTML에서 xslt() 함수에서 "../xsl/filename"의 사용이 작동하지 않는 것으로 보입니다. 이 경로가 "./filename"으로 지정되면 작동합니다.JavaScript에서 형제 폴더 해결

누구든지이 문제를 해결하거나 절대 경로 참조없이 형제 폴더를 지정할 수있는 방법을 찾을 수 있습니다. 내 개발 환경이 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 소스 파일을 가져 오는 헤더가 웹 서버에서 문제를 일으키지 않도록 상대 경로를 적어도 한 단계 깊이 참조 할 수 있습니다.

리소스를 처리하고 당기는 것이 클라이언트 측에서 일어나는 것처럼 보이므로 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 매개 변수 값 모두 사용). 가능성을 제거하고 실패 지점을 찾을 때까지 처리 과정을 계속 진행하십시오.

원래 저자가 상대 경로를 예상하지 않은 줄 아래 어딘가에 정규식 일치/문자열 처리 버그가 있다고 생각합니다.