【问题标题】:parse xml with javascript for html用 javascript 为 html 解析 xml
【发布时间】:2016-02-18 05:49:01
【问题描述】:

我正在尝试从 Yahoo 控制台获取一些有关天气状况的信息。 Yahoo 的 xml 结果树如下所示:result tree

我能够使用我拥有的代码获得只有一层深度的东西。我的变量 'beta' 是用于精美作品的标题。第二个变量是'alpha',它不起作用。我相信这与我如何称呼它“item.condition.temp”和节点值有关。

我对此很陌生,因此请列出您使用的任何资源,因为这将有助于我继续前进。

<!DOCTYPE html>
<html>
<head>
<p id="alpha"></p>
<p id="beta"></p>

<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
    if (xhttp.readyState == 4 && xhttp.status == 200) {
        myFunction(xhttp);
    }
};
xhttp.open('GET', 'https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%3D2444827&diagnostics=true', true);
xhttp.send();

function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    document.getElementById('beta').innerHTML = 
    xmlDoc.getElementsByTagName('title')[0].childNodes[0].nodeValue;
    document.getElementById('alpha').innerHTML = 
    xmlDoc.getElementsByTagName('item.condition.temp')[0].childNodes[0].nodeValue;
}
</script>

【问题讨论】:

  • 尝试使用像 xmlDoc.querySelector('results channel location')xmlDoc.querySelectorAll('results channel forecast') 这样的好东西 .. xmlDoc 也有 getElementById getElementsByTagName 等,就像 HTML 一样......在 Firefox 中至少你可以安全地忽略 yweather: 命名空间

标签: javascript html xml weather


【解决方案1】:

我建议将 &format=json 添加到您的 URL 以使其成为:

https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%3D2444827&diagnostics=true&format=json

然后解析生成的 JSON,这是一种更 JavaScript 的方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    相关资源
    最近更新 更多