Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 读取循环中xml文件的所有节点_Javascript - Fatal编程技术网

Javascript 读取循环中xml文件的所有节点

Javascript 读取循环中xml文件的所有节点,javascript,Javascript,我有这样的xml文件 <bookstore> <book category="cooking"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00<

我有这样的xml文件

    <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" cover="paperback">
      <title lang="en">Learning XML</title>
      <author>Erik T. Ray</author>
      <year>2003</year>
      <price>39.95</price>
     </book>
</bookstore>

日常意大利语
吉娅达·德·劳伦蒂斯
2005
30
哈利·波特
J K.罗琳
2005
29.99
学习XML
埃里克·T·雷
2003
39.95
我想读取此xml的所有值。即,我需要所有节点的值。是否可以在不使用服务器端脚本语言的情况下读取所有节点的值。我用于读取xml的所有标题的代码如下所示

<script type="text/javascript">
        function loadXMLDoc()
        {
        //var item = document.getElementById('search').value;
        var request = new XMLHttpRequest();
        var url = "http://saletrack.cynere.net/test2.xml";
        request.open("GET",url, true);
        request.send();
        request.onreadystatechange = function() {
        if (request.readyState == 4) {
            if (request.status == 200 || request.status == 0) {
                var myxml = request.responseXML;
                var theHTML = '';
                var x = myxml.getElementsByTagName("title");
                for (var i = 0; i < x.length; i++) {
                var y = x[i].childNodes[0].nodeValue;
                theHTML += ['<div class="result"',
                '<div ul="content">',
                '<li><h3>'+y+'</h3></li>',
                '</ul>',
                '</div>'].join('');
                    }
            }
        }
        document.getElementById('list').innerHTML = theHTML;
        }
        }

        document.addEventListener("deviceready", loadXMLDoc, false);

    </script>

函数loadXMLDoc()
{
//var item=document.getElementById('search')。值;
var request=new XMLHttpRequest();
变量url=”http://saletrack.cynere.net/test2.xml";
打开(“获取”,url,true);
request.send();
request.onreadystatechange=函数(){
if(request.readyState==4){
if(request.status==200 | | request.status==0){
var myxml=request.responseXML;
var theHTML='';
var x=myxml.getElementsByTagName(“标题”);
对于(变量i=0;iHTML+=['您可以使用jquery而不是核心javascript

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
//Code Starts
$(document).ready(function(){
  $("#list").append("<ul></ul>");
  $.ajax({
    type: "GET",
    url: "test2.xml",
    //url: "test2.xml",
    crossDomain: true,
    dataType: "xml",
    success: function(xml){
    $(xml).find('book').each(function(){
      var sTitle = $(this).find('title').text();
      var author = $(this).find('author').text();
      var year = $(this).find('year').text();
      var price = $(this).find('price').text();
      $("<li></li>").html(sTitle + ", " + author + ", " + year + ", " + price ).appendTo("#list ul");
    });
  },
  error: (function(xhr, ajaxOptions, thrownError) {
    ///show error message ie. "Status Code: ("+xhr.status+")<br>Description: "+xhr.statusText
    alert("An error occurred while processing XML file. Status Code: ("+xhr.status+")<br>Description: "+xhr.statusText );
  })
  });
});
</script>

//代码开始
$(文档).ready(函数(){
$(“#列表”)。追加(“
    ”); $.ajax({ 键入:“获取”, url:“test2.xml”, //url:“test2.xml”, 跨域:是的, 数据类型:“xml”, 成功:函数(xml){ $(xml).find('book').each(函数(){ var sTitle=$(this.find('title').text(); var author=$(this.find('author').text(); var year=$(this.find('year').text(); var price=$(this.find('price').text(); $(“
  • ”)html(sTitle+”、“+author+”、“+year+”、“+price”)。附录(“#列表ul”); }); }, 错误:(函数(xhr、ajaxOptions、thrownError){ ///显示错误消息,即“状态代码:(“+xhr.Status+”)
    说明:“+xhr.statusText” 警报(“处理XML文件时出错。状态代码:(“+xhr.Status+”)
    说明:“+xhr.statusText”); }) }); });
    Html代码:

    <body>
    <div id="list"></div>
    </body>
    
    
    
    输出为:

    • 《每日意大利语》,Giada De Laurentiis,2005年,30.00
    • 哈利波特,J K.罗琳,2005年,29.99
    • XQuery Kick Start,James McGovernPer BothnerKurt CagleJames LinnVaidyanathan Nagarajan,2003,49.99
    • 学习XML,Erik T.Ray,2003,39.95