<script type="text/javascript">
var xmlHttp;
var requestType = "";
function createXMLHttpRequest() {
??? if (window.ActiveXObject) {
??????? xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
??? }
??? else if (window.XMLHttpRequest) {
??????? xmlHttp = new XMLHttpRequest();
??? }
}
???
function startRequest(requestedList) {
??? requestType = requestedList;
??? createXMLHttpRequest();
??? xmlHttp.onreadystatechange = handleStateChange;
??? xmlHttp.open("GET", "parseXML.xml", true);
??? xmlHttp.send(null);
}
???
function handleStateChange() {
??? if(xmlHttp.readyState == 4) {
??????? if(xmlHttp.status == 200) {
??????????? if(requestType == "north") {
??????????????? listNorthStates();
??????????? }
??????????? else if(requestType == "all") {
??????????????? listAllStates();
??????????? }
??????? }
??? }
}
?
function listNorthStates() {
??? var xmlDoc = xmlHttp.responseXML;
??? var northNode = xmlDoc.getElementsByTagName("north")[0];
???
??? var northStates = northNode.getElementsByTagName("state");
???
??? outputList("Northern States", northStates);
}
function listAllStates() {
??? var xmlDoc = xmlHttp.responseXML;
??? var allStates = xmlDoc.getElementsByTagName("state");
???
??? outputList("All States in Document", allStates);
}
function outputList(title, states) {
??? var out = title;
??? var currentState = null;
??? for(var i = 0; i < states.length; i++) {
??????? currentState = states[i];
??????? out = out + "\n- " + currentState.childNodes[0].nodeValue;
??? }
???
??? alert(out);
}
</script>
parseXML.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<states>
??? <north>
??????? <state>Minnesota</state>
??????? <state>Iowa</state>
??????? <state>North Dakota</state>
??? </north>
??? <south>
??????? <state>Texas</state>
??????? <state>Oklahoma</state>
??????? <state>Louisiana</state>
??? </south>
??? <east>
??????? <state>New York</state>
??????? <state>North Carolina</state>
??????? <state>Massachusetts</state>
??? </east>
??? <west>
??????? <state>California</state>
??????? <state>Oregon</state>
??????? <state>Nevada</state>
??? </west>
</states>