Ajax解析XML

一、allarea.xml

<?xml version="1.0" encoding="UTF-8" ?>
<allarea>
 <area>
  <id>1</id>
  <title>北京</title>
 </area>
 <area>
  <id>2</id>
  <title>天津</title>
 </area>
 <area>
  <id>3</id>
  <title>南京</title>
 </area>
</allarea>

 

二、ajax_select.html

<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>使用AJax解析XML,并生成下拉列表框</title>
 </head>
 <script type="text/javascript">
  var xmlHttp;  // Ajax 核心对象名称
  function createXMLHttp()  // 创建 XMLHttpRequest 核心对象 
  {
   if(window.XMLHttpRequest)  // 判断当前使用的浏览器类型
   {
    xmlHttp = new XMLHttpRequest;  // 表示使用的是 FireFox 内核浏览器
   }
   else
   {
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
   }
  }

  function getCity()
  {
   createXMLHttp();  // 建立 xmlHttp 核心对象
   xmlHttp.open("POST", "allarea.xml");  // 设置一个请求
   // 设置请求完成之后处理的回调函数
   xmlHttp.onreadystatechange = getCityCallback;
   xmlHttp.send(null);  // 发送请求,不传递任何参数
  }

  function getCityCallback()  // 定义回调函数
  {
   if(xmlHttp.readyState == 4)  // 数据返回完毕
   {
    if(xmlHttp.status == 200)
    {
     // 取得 allarea 节点下的全部节点
     var allarea = xmlHttp.responseXML.getElementsByTagName("allarea")[0].childNodes;
     // 取得下拉列表框 city 的对象
     var select = document.getElementById("city");  // 
     select.length = 1;  // 显示一个内容
     select.options[0].selected = true;  // 设置第一个为选择状态
     // 循环 all 下的子节点
     for(var i = 0; i < allarea.length; i++)
     {
      var area = allarea[i];  // 取得每一个 <area>
      // 创建 option 元素
      var option = document.createElement("option");
      // 取得每一个 <area> 中的 <id> 元素内容
      var id = area.getElementsByTagName("id")[0].firstChild.nodeValue;
      // 取得每一个 <area> 中的 <id> 元素内容
      var title = area.getElementsByTagName("title")[0].firstChild.nodeValue;
      // 在 option 元素中设置显示的内容
      option.setAttribute("value", id);
      // 在 option 中添加显示的文本内容
      option.appendChild(document.createTextNode(title));
      // 在下拉列表框中加入 optioon 属性
      select.appendChild(option);
     }
    }
   }
  }
 </script>
 <body onLoad="getCity()">   <!--  页面加载时调用 -->
  <form action="" method="post">
   请选择喜欢的城市:<select name="city">
    <option value="0">  - 请选择城市 -  </option>
   </select>
  </form>
 </body>
</html>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值