Google Spreadsheet IMPORTHTML importing Null

Google Spreadsheet IMPORTHTML importing Null

本文关键字:Null importing IMPORTHTML Spreadsheet Google      更新时间:2023-09-26

我有一个从XML URL中提取数据的html文件。

当我通过浏览器浏览html时,我可以看到它加载了表中的数据。

然而,它在GoogleSpread中拉NULL

无论出于何种原因,都无法直接从Google电子表格中提取XML中的数据。我必须从我的网络服务器中提取它,然后将其拉到Google电子表格。

这是 html 代码:

    <html>
    <head>
    <style>
    table, th, td {
      border: 1px solid black;
      border-collapse:collapse;
    }
    th, td {
      padding: 5px;
    }
    </style>
    </head>
 <body onload="loadXMLDoc()">
  <table>
        <tr>
            <td>2</td>
            <td id="demo"></td>
        </tr>
    </table>

<button type="button" onclick="loadXMLDoc()">Get my CD collection</button>
    <script>
    function loadXMLDoc() {
      var xmlhttp = new XMLHttpRequest();
      xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
          myFunction(xmlhttp);
        }
      };
      xmlhttp.open("GET", "http://www.w3schools.com/xml/cd_catalog.xml", true);
      xmlhttp.send();
    }
    function myFunction(xml) {
      var i;
      var xmlDoc = xml.responseXML;
      var table="<tr><th>Artist</th><th>Title</th></tr>";
      var x = xmlDoc.getElementsByTagName("CD");
      for (i = 0; i <x.length; i++) { 
        table += "<tr><td>" +
        x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue +
        "</td><td>" +
        x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue +
        "</td></tr>";
      }
      document.getElementById("demo").innerHTML = table;
    }
    </script>
    </body>
    </html>

以下是谷歌电子表格公式:

=IMPORTHTML("http://example.com/xml/myscript.html","table",1)

原因是因为它正在进行 ajax 调用 - 例如,您显示的"示例"xml 实际上是在调用"http://www.w3schools.com/xml/cd_catalog.xml",因此这是包含实际数据的 URL。

您可以使用

=IMPORTXML("http://www.w3schools.com/xml/cd_catalog.xml","//CD")