AJAX检索xml响应 [英] AJAX retrieving xml response

查看:46
本文介绍了AJAX检索xml响应的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有2个.jsp页面.

I have 2 .jsp pages.

The 1. one contains just a xml structure for applicants:

<% response.setContentType("text/xml") ; %>

    <applicant>
     <citizenship>GERMANY</citizenship>
     <residence>Inc.</residence>
     <street>9500 Gilman Drive</street>
     <city>La Jolla</city>
     <state>USA</state>
     <countryTelCode>Vandelay Industries</countryTelCode>
     <zipCode>Inc.</zipCode>
     <areaCode>9500 Gilman Drive</areaCode>
     <telNumber>La Jolla</telNumber>
     <major>USA</major>
     <awarded>Vandelay Industries</awardeds>
     <gpa>Inc.</gpa>
     <specialization>9500 Gilman Drive</specialization>
    </applicant>

第二个尝试从标记中检索德国并将其打印在以下内容的"..."字段中:

The second one tries to retrieve GERMANY from the tag and print it in the "..." field of:

< span id ="Citizenship"> ...</span>

在调用showCustomer()之后使用此代码:

using this code after calling showCustomer():

<script type="text/javascript">
    function showCustomer() {
        var xmlHttp;

        xmlHttp = new XMLHttpRequest();
        if (xmlHttp == null) {
            alert("Your browser does not support AJAX!");
            return;
        }
        var url = "getApplicant_xml.jsp";

        xmlHttp.onreadystatechange = function() {
            if (xmlHttp.readyState == 4) {
                var xmlDoc = xmlHttp.responseXML.documentElement;
                document.getElementById("Citizenship").innerHTML = xmlDoc.getElementsByTagName("citizenship")[0].childNodes[0].nodeValue;

            }

        }
        xmlHttp.open("GET", url, true);

        xmlHttp.send(null);
    }
    }
</script>

很遗憾,它不打印任何内容.如果有人发现我的错误,我将非常感谢.

Unfortunately it does not print anything.... I would be really thankful if someone finds my mistake.

谢谢

推荐答案

您的问题是xmlHttp.responseXML为空.您需要从xmlHttp.responseText解析一个新的DOM对象.我修复了代码.

Your problem is that xmlHttp.responseXML is null. You need to parse a new DOM object from xmlHttp.responseText. I fixed the code.

<script type="text/javascript">
function showCustomer() {
    var xmlHttp;
    xmlHttp = new XMLHttpRequest();
    if (xmlHttp == null) {
        alert("Your browser does not support AJAX!");
        return;
    }
    var url = "getApplicant_xml.jsp";
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState == 4) {
            var xmlDoc = xmlHttp.responseText;
            xmldom = (new DOMParser()).parseFromString(xmlDoc, 'text/xml');
            text = xmldom.getElementsByTagName("citizenship")[0];
            document.getElementById("Citizenship").innerHTML = text.childNodes[0].nodeValue;
        }
    };
    xmlHttp.open("GET", url, true);

    xmlHttp.send(null);
};
</script>

这篇关于AJAX检索xml响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆