首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用javascript读取多节点xml文件

如何用javascript读取多节点xml文件
EN

Stack Overflow用户
提问于 2013-07-18 14:34:02
回答 1查看 112关注 0票数 0

我有一个RegistrationResponseMessages.xml:

代码语言:javascript
复制
<messages>
  <error>
    <code id="501">Couldn't retrieve the HTML document because of server-configuration problems.</code>
    <code id="502">Server busy, site may have moved ,or you lost your dial-up Internet connection.</code>
  </error>
  <success></success>
</messages>

尝试使用javascript读取代码ID501和502的内容,但不起作用。

代码语言:javascript
复制
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        }
        else {// code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.open("GET", "RegistrationResponseMessages.xml", false);
        xmlhttp.send();
        xmlDoc = xmlhttp.responseXML;

        document.getElementById("errorCode403").innerHTML = getElementsByTagName(501)[0].childNodes[0].nodeValue);

在这里显示它:

代码语言:javascript
复制
<label id="errorCode403" style="font-weight: 600; color: red;">give some error</label>

我的问题是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-18 14:40:19

它是ajax,你必须等待数据返回,然后你必须以正确的方式访问它:

代码语言:javascript
复制
var xmlhttp;

if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
} else {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onload = function() {
    var xmlDoc = this.responseXML,
        value  = xmlDoc.getElementsByTagName('501')[0].childNodes[0].nodeValue;
    document.getElementById("errorCode403").innerHTML = value;
}

xmlhttp.open("GET", "RegistrationResponseMessages.xml", false);
xmlhttp.send();

不确定XML中的遍历,因为501听起来像一个奇怪的tagName?

编辑:

要获取ID的列表,您可以在onload处理程序中执行以下操作:

代码语言:javascript
复制
xmlhttp.onload = function() {
    var xmlDoc = this.responseXML,

    var codes = xmlDoc.getElementsByTagName('code');
    var array = [];

    for (var i=0; i<codes.length; i++) {  
        array.push( codes[i].id );
    }

    console.log(array);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17716193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档