繁体   English   中英

如何使用Javascript从XML文档中获取数据

[英]How do I get data from a XML document using Javascript

我正在尝试从“状态”标签中检索属性,并将其与“标题”标签的内部html一起放入表中。 以下是我试图从中检索数据的文档的一部分,还有很多,但是写在这篇文章中太长了。

<itemlist>
   <item>
      <title>
         Real Family Food
      </title>
      <type>Book</type>
      <authors>
         <author>McKenzie-Price, Isobel</author>
      </authors>
      <subjects>
         <subject>Cooking</subject>
         <subject>Family</subject>
      </subjects>
      <publisher>All You Books, 2006 New York</publisher>
      <isbn>9781933821276</isbn>
      <location>Adult</location>
      <collection>Non-fiction</collection>
      <callno>641.5 REA</callno>
      <status>Available</status>
   </item>
   <item>
      <title>
         Serenity
      </title>
      <type>Visual Material</type>
      <authors>
         <author>Whedon, Josh</author>
      </authors>
      <subjects>
         <subject>Human experimentation</subject>
         <subject>Totalitariansim</subject>
         <subject>Science fiction</subject>
      </subjects>
      <publisher>Universal Pictures, c2005</publisher>
      <isbn>141703050X</isbn>
      <location>Adult</location>
      <collection>DVDs</collection>
      <callno>DVD SER </callno>
      <status return="3/5/2017">Checked Out</status>
   </item>

我现在有这个功能,但是它似乎没有用。 它不是在获取“状态”标签的数组,而是在获取标题。

<html>
<head>

</head>

<body>
    <p id="result"></p>

    <script>
        var xhttp = new XMLHttpRequest();
        xhttp.open("GET", "library_item.xml", false);
        xhttp.send();
        xmlDoc = xhttp.responseXML;

        var output = "<table border='1'>";
        var title = xmlDoc.getElementsByTagName("title");
        var status = xmlDoc.getElementsByTagName("status");
        console.log(status);
        console.log(title);
        output += "<th>Title</th><th>Status</th>";
        for(i=0; i<title.length; i++){
            output += "<tr>";
            output += "<td>"+title[i].innerHTML+"</td>";
            output += "<td>"+status[i].getAttribute("return")+"</td>";
            output += "</tr>";
        }
        output += "</table>";
        document.getElementById("result").innerHTML = output; 

    </script>

    
</body>

我正在尝试从“状态”标签中检索属性,并将其与“标题”标签的内部html一起放入表中。 以下是我试图从中检索数据的文档的一部分,还有很多,但是写在这篇文章中太长了。

<itemlist>
   <item>
      <title>
         Real Family Food
      </title>
      <type>Book</type>
      <authors>
         <author>McKenzie-Price, Isobel</author>
      </authors>
      <subjects>
         <subject>Cooking</subject>
         <subject>Family</subject>
      </subjects>
      <publisher>All You Books, 2006 New York</publisher>
      <isbn>9781933821276</isbn>
      <location>Adult</location>
      <collection>Non-fiction</collection>
      <callno>641.5 REA</callno>
      <status>Available</status>
   </item>
   <item>
      <title>
         Serenity
      </title>
      <type>Visual Material</type>
      <authors>
         <author>Whedon, Josh</author>
      </authors>
      <subjects>
         <subject>Human experimentation</subject>
         <subject>Totalitariansim</subject>
         <subject>Science fiction</subject>
      </subjects>
      <publisher>Universal Pictures, c2005</publisher>
      <isbn>141703050X</isbn>
      <location>Adult</location>
      <collection>DVDs</collection>
      <callno>DVD SER </callno>
      <status return="3/5/2017">Checked Out</status>
   </item>

我现在有这个功能,但是它似乎没有用。 它不是在获取“状态”标签的数组,而是在获取标题。

<html>
<head>

</head>

<body>
    <p id="result"></p>

    <script>
        var xhttp = new XMLHttpRequest();
        xhttp.open("GET", "library_item.xml", false);
        xhttp.send();
        xmlDoc = xhttp.responseXML;

        var output = "<table border='1'>";
        var title = xmlDoc.getElementsByTagName("title");
        var status = xmlDoc.getElementsByTagName("status");
        console.log(status);
        console.log(title);
        output += "<th>Title</th><th>Status</th>";
        for(i=0; i<title.length; i++){
            output += "<tr>";
            output += "<td>"+title[i].innerHTML+"</td>";
            output += "<td>"+status[i].getAttribute("return")+"</td>";
            output += "</tr>";
        }
        output += "</table>";
        document.getElementById("result").innerHTML = output; 

    </script>

    
</body>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM