클라이언트 측에서 XML 파일을 처리해야하는이 프로젝트에서 작업 중입니다. 이것은 시나리오입니다. 사용자가 XML 파일을 업로드하면이 시점에서 XML 파일의 구조를 읽고 XML 파일의 정보를 기반으로 테이블을 채워야합니다. 테이블을 생성하고 데이터를 채우는 데 문제가 없지만 서버에 업로드하기 전에 XML 파일을 처리 할 수 있습니까?JavaScript - 클라이언트 측에서 XML 파일 업로드 및 읽기
function parseXML(xml_file){
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//xmlhttp.open("GET", "books.xml", false);
xmlhttp.open("GET",xml_file , false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
alert(xmlDoc);
}
내가 파일을 처리 한 후 위의 코드를 사용하는 경우, 해당 xmldoc가 null이 될 것입니다 ...
function handleFileSelect(evt) {
// FileList object
var files = evt.target.files;
//var contents = evt.target.result;
//alert(contents);
parseXML(files[0]);
// files is a FileList of File objects. List some properties.
var output = [];
for (var i = 0, f; f = files[i]; i++) {
output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a', ') - ', f.size, ' bytes, last modified: ', f.lastModifiedDate ? f.lastModifiedDate.toLocaleDateString() : 'n/a', '</li>');
}
document.getElementById('file_list').innerHTML = '<ul>' + output.join('') + '</ul>';
}
이 할 수있는 방법이 있나요? 물론 PHP로 이것을 할 수 있습니다 ... 파일을 서버에 업로드하고 페이지를 새로 고치고 최근에 업로드 한 파일을 읽는 JavaScript를 사용하십시오. 그러나 XML 파일을 서버에 업로드하지 않고도이를 수행 할 수있는 방법이 있습니까?
xhttp.open("GET","books.xml",false)
실제 파일을 FileReader를 사용하여 파일을 읽고 전달하는 방법 대신에 xhttp.open 할 수있는 경로가 있습니까 :
DOMParse 열려면 파일 경로를 필요로?
['FileReader'] (https://developer.mozilla.org/en-US/docs/Web/API/FileReader) 파일을 읽으려면 ['DomParser'] (https : //로 개발 .mozilla.org/ko-US/docs/Web/API/DOMParser)를 사용하여 XML을 구문 분석합니다. –
FileReader를 보았지만 FileReader로 파일을 반환하는 방법을 잘 모르겠습니다. 어떤 시점에서 DOMParser는 파일을 열어야하므로 매개 변수로 무엇을 제공해야합니까? xhttp.open ("GET", "books.xml", false); –