如何从xml Ip api获取xml内容并将其显示在网页上?

时间:2015-07-20 10:47:53

标签: javascript xml ip

我在我的网页上使用http://ip-api.com/docs/api:xml的XML api来获取访问我网站的访客的信息。 以下是从api返回的成功的xml文档:

<script>
xmlDoc=loadXMLDoc("http://ip-api.com/xml/xx.xx.xx.x");
x=xmlDoc.getElementsByTagName("country")[0]y=x.childNodes[0];
document.write(y.nodeValue);
</script>

我想使用javascript在我的网页上显示这个xml文档的内容,我知道可以使用像PHP这样的服务器端语言轻松完成,我的php版本很旧,并且它在解析xml文档时返回错误。所以我正在寻找客户端解决方案。

这是我到目前为止所尝试的内容:

netstat

它不起作用,我正在填写空白页面。

如何在我的网页上显示xml文件的内容?

请帮助我,我一直试图解决这个问题,因为早上

1 个答案:

答案 0 :(得分:1)

我已按如下方式调整您的代码:

    //txt = loadXMLDoc("http://ip-api.com/xml/xx.xx.xx.x");
    var txt = '<country>United Kingdom</country><countryCode>UK</countryCode><region>Bristol</region><ip>xx.xx.xx.x</ip><ISP>VodafoneM</ISP>';
    txt = '<query>' + txt + '</query>';

    // Info: http://www.w3schools.com/xml/xml_parser.asp
    if (window.DOMParser) {
        parser = new DOMParser();
        xmlDoc = parser.parseFromString(txt, "text/xml");
    }
    else // Internet Explorer
    {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = false;
        xmlDoc.loadXML(txt);
    }

    var x = xmlDoc.getElementsByTagName("country")[0];
    var y = x.childNodes[0];
    //document.write(y.nodeValue);
    document.getElementById("content").innerHTML = y.nodeValue;

请在jsfiddle中查看结果。