1

2 つの .jsp ページがあります。

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>

2 つ目は、タグから GERMANY を取得して、次の "..." フィールドに出力しようとします。

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

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>

残念ながら、何も印刷されません....誰かが私の間違いを見つけてくれたら本当にありがたいです。

ありがとうございました

4

1 に答える 1

1

あなたの問題は、xmlHttp.responseXMLがnullであるということです。xmlHttp.responseTextから新しいDOMオブジェクトを解析する必要があります。コードを修正しました。

<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>
于 2012-05-24T07:45:38.643 に答える