0

初めてなので質問失礼します

ここにxmlファイルをロードするための私のloadxml.jsファイルがあります

 function loadXMLDoc(dname)
 {
 if (window.XMLHttpRequest)
   {
   xhttp=new XMLHttpRequest();
   }
 else
   {
   xhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }

 xhttp.onreadystatechange=function()
  {
  if (xhttp.readyState==4 && xmlhttp.status==200)
    {
    return xhttp.responseXML;
    }
  }

xhttp.open("GET",dname, true);

xhttp.send();


 } 

ここに、JavaScriptを使用してノードを抽出しようとするhtmlファイルがあります

<!DOCTYPE html>

<html>

<head>

<script src="loadxmldoc.js">
</script>

</head>

<body>

<script>


xmlDoc=loadXMLDoc("books.xml");



document.write(xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue + "<br>");

document.write(xmlDoc.getElementsByTagName("author")[0].childNodes[0].nodeValue + "<br>");

document.write(xmlDoc.getElementsByTagName("year")[0].childNodes[0].nodeValue);
</script>

</body>

</html>

そして、ここにxmlファイルがあります

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore> 
 <book category="cooking">
   <title lang="en">Everyday Italian</title> 
   <author>Giada De Laurentiis</author> 
   <year>2005</year> <price>30.00</price> 
 </book> -
 <book category="children"> 
   <title lang="en">Harry Potter</title> 
   <author>J K. Rowling</author> 
   <year>2005</year> 
   <price>29.99</price> 
 </book> 
 <book category="web"> 
   <title lang="en">XQuery Kick Start</title> 
   <author>James McGovern</author> 
   <author>Per Bothner</author> 
   <author>Kurt Cagle</author> 
   <author>James Linn</author> 
   <author>Vaidyanathan Nagarajan</author> 
   <year>2003</year> 
   <price>49.99</price> 
 </book> 
 <book category="web" cover="paperback"> 
  <title lang="en">Learning XML</title>
  <author>Erik T. Ray</author> 
  <year>2003</year> 
  <price>39.95</price> 
 </book> 
</bookstore>
4

2 に答える 2

0

非同期リクエストを実行しています。ハンドラーをアタッチするか、デバッグ用に同期させます。

xhttp.open("GET",dname,false);

またはハンドラーを使用することをお勧めします。

xhttp.open("GET",dname,true);
xhttp.onreadystatechange = function(){
    if(xhttp.readyState == 4){
        if(xhttp.status == 200)
            console.log(req.responseText);
         else
            console.log('Error getting data') ;
    }
}
xhttp.send(null);
return xhttp.responseXML;
于 2012-12-14T10:49:24.730 に答える
0

ほとんどの作業は jQuery を使用することをお勧めします。

$.ajax({
  url: 'ajax/test.html',
  success: function(data) {
    $('.result').html(data);
    alert('Load was performed.');
  }
});
于 2012-12-14T14:29:41.157 に答える