javascript对xml的解析 (ajax,dom4j)

JavaScript XML解析与下拉联动技术实现

 

javascript对xml的解析

 

 

function selectProv(field) {
 var xmlHttp = null;
 //表示当前浏览器不是ie,如ns,firefox
 if(window.XMLHttpRequest) {
  xmlHttp = new XMLHttpRequest();
 } else if (window.ActiveXObject) {
  xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
 }
 var url = "${pageContext.request.contextPath}/servlet/SelectProvServlet?regionId=" + trim(field.value) + "&time=" + new Date().getTime();
 
 //设置请求方式为GET,设置请求的URL,设置为异步提交
 xmlHttp.open("GET", url, true);
 
 xmlHttp.onreadystatechange=function() {
  //Ajax引擎状态为成功
  if (xmlHttp.readyState == 4) {
   //HTTP协议状态为成功
   if (xmlHttp.status == 200) {
    var doc = xmlHttp.responseXML;
    var items = doc.getElementsByTagName("item");
    //取得省下拉列表
    var provSelect = document.getElementById("province");
    //清除省下拉列表中的值
    provSelect.options.length = 0;
    var o = new Option("--全部--", 0);
    provSelect.add(o);
    for (var i=0; i<items.length; i++) {
     //var id = items[i].childNodes[0].childNodes[0].nodeValue;
     //var name = items[i].childNodes[1].childNodes[0].nodeValue;
     var id = items[i].childNodes[0].firstChild.nodeValue;
     var name = items[i].childNodes[1].firstChild.nodeValue;
     //alert(id + "," + name);
     //构造下拉列表的Option对象
     var o = new Option(name, id);
     //向下拉列表中添加选项
     provSelect.add(o);
    }
   }else {
    alert("请求失败,错误码=" + xmlHttp.status);
   }
  }
 };
 
 //将设置信息发送到Ajax引擎
 xmlHttp.send(null);
}

 

---------------------------------------------------------------------------------------------------------------------------------
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

import com.bjpowernode.drp.basedata.manager.ClientManager;

/**
 * 下拉联动,根据区域代码选择省
 * @author Administrator
 *
 */
public class SelectProvServlet extends HttpServlet {

 /*
 1、自定义格式
 10023,吉林省#10025,辽宁省#10026,黑龙江
 
 2、XML格式
 <?xml version="1.0" encoding="UTF-8"?>
 <items>
  <item>
   <id>10023</id>
   <name>吉林省</name>
  </item>
  <item>
   <id>10025</id>
   <name>辽宁省</name>
  </item>
  <item>
   <id>10026</id>
   <name>黑龙江</name>
  </item>
 </items>
 */
 @Override
 protected void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {


  response.setContentType("text/xml;charset=UTF-8");
  int regionId = Integer.parseInt(request.getParameter("regionId"));
  if (regionId != 0) {
   Map<Integer, String> map = ClientManager.getInstance().getProvByRegionId(regionId);
   Document doc = DocumentHelper.createDocument();
   Element rootElt = doc.addElement("items");
   for (Iterator<Map.Entry<Integer, String>> iter=map.entrySet().iterator(); iter.hasNext();) {
    Map.Entry<Integer, String> entry = iter.next();
    Element itemElt = rootElt.addElement("item");
    Element idElt = itemElt.addElement("id");
    idElt.setText(String.valueOf(entry.getKey()));
    Element nameElt = itemElt.addElement("name");
    nameElt.setText(entry.getValue());
   }


   String xmlString = doc.asXML();
   System.out.println(xmlString);
   response.getWriter().print(xmlString);


  }
 }

}

【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值