AJAX基础教程-2 ParseXML

本文提供了一个使用JavaScript解析XML文件的示例代码。通过发送GET请求获取XML文件,并根据不同条件展示北部州或所有州的信息。代码展示了如何创建XMLHttpRequest对象、处理响应状态变化以及解析XML数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js 代码
  1. <script type=< span="">"text/javascript">   
  2. var xmlHttp;   
  3. var requestType = "";   
  4. //创建xmlHttp对象   
  5. function createXMLHttpRequest() {   
  6.     if (window.ActiveXObject) {   
  7.     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");   
  8.     }   
  9.     else if (window.XMLHttpRequest) {   
  10.     xmlHttp = new XMLHttpRequest();   
  11.     }   
  12. }   
  13. //开始相应解析parseXML.xml   
  14. function startRequest(requestedList) {   
  15.     requestType = requestedList;   
  16.     createXMLHttpRequest();   
  17.     xmlHttp.onreadystatechange = handleStateChange;   
  18.     xmlHttp.open("GET""parseXML.xml"true);   
  19.     xmlHttp.send(null);   
  20. }   
  21. //处理相关的操作   
  22. function handleStateChange() {   
  23.     if(xmlHttp.readyState == 4) {   
  24.         if(xmlHttp.status == 200) {   
  25.             if(requestType == "north") {   
  26.             listNorthStates();   
  27.             }   
  28.             else if(requestType == "all") {   
  29.             listAllStates();   
  30.             }   
  31.         }   
  32.     }   
  33. }   
  34. function listNorthStates() {   
  35.     var xmlDoc = xmlHttp.responseXML;//读取解析的xml信息   
  36.     var northNode = xmlDoc.getElementsByTagName("north")[0];   
  37.     var out = "Northern States";   
  38.     var northStates = northNode.getElementsByTagName("state");   
  39.     outputList("Northern States", northStates);   
  40. }   
  41. function listAllStates() {   
  42.     var xmlDoc = xmlHttp.responseXML;   
  43.     var allStates = xmlDoc.getElementsByTagName("state");   
  44.     outputList("All States in Document", allStates);   
  45. }   
  46. function outputList(title, states) {   
  47.     var out = title;   
  48.     var currentState = null;   
  49.     for(var i = 0; i < states.length; i++) {   
  50.     currentState = states[i];   
  51.     out = out + "\n- " + currentState.childNodes[0].nodeValue;   
  52.     }   
  53. alert(out);   
  54. }   
  55. </script>  
xml 代码
  1. xml version="1.0" encoding="UTF-8"?>  
  2. <states>  
  3.     <north>  
  4.         <state>Minnesotastate>  
  5.         <state>Iowastate>  
  6.         <state>North Dakotastate>  
  7.     north>  
  8.     <south>  
  9.         <state>Texasstate>  
  10.         <state>Oklahomastate>  
  11.         <state>Louisianastate>  
  12.     south>  
  13.     <east>  
  14.         <state>New Yorkstate>  
  15.         <state>North Carolinastate>  
  16.         <state>Massachusettsstate>  
  17.     east>  
  18.     <west>  
  19.         <state>Californiastate>  
  20.         <state>Oregonstate>  
  21.         <state>Nevadastate>  
  22.     west>  
  23. states>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值