JS解析XML

转载 2007年10月02日 16:32:00
1.对XMLHttpRequest请求返回的responseXML进行解析,responseXML是个XMLDOcument对象
假设返回的responseXML为:
<?xml version="1.0" encoding="UTF-8"
  standalone="yes"?>
<response>
  <method>checkName</method>
  <result>1</result>
</response>
则获取method和result值方法为:
var response=req.responseXML.documentElement;
method    =response.getElementsByTagName('method')[0].firstChild.data;
result    = response.getElementsByTagName('result')[0].firstChild.data;

2.创建一个XMLDocument对象
function getXMLDocument() {
    var xDoc = null;
    if (document.implementation && document.implementation.createDocument) {
        xDoc = document.implementation.createDocument("", "", null);
    } else {
        if ((typeof ActiveXObject) != "undefined") {
            var msXmlAx = null;
            try {
                msXmlAx = new ActiveXObject("Msxml2.DOMDocument");
            }
            catch (e) {
                msXmlAx = new ActiveXObject("Msxml.DOMDocument");
            }
            xDoc = msXmlAx;
        }
    }
    if (xDoc == null || typeof xDoc.load == "undefined") {
        xDoc = null;
    }
    return xDoc;
}

3.创建一个DOM树
<people>
 <person first-name="eric" middle-initial="h" last-name="jung">
  <address street="321 south st" city="denver" state="co" country="usa" />
 </person>
 <person first-name="jed" last-name="brown">
  <address street="321 north st" city="atlanta" state="ga" country="usa" />
  <address street="321 south avenue" city="denver" state="co" country="usa" />
 </person>
</people>
程序如下:
  var doc=getXMLDocument();
  var peopleElem = doc.createElement("people");
  var personElem1 = doc.createElement("person");
  personElem1.setAttribute("first-name", "eric");
  personElem1.setAttribute("middle-initial", "h");
  personElem1.setAttribute("last-name", "jung");
  
  var addressElem1 = doc.createElement("address");
  addressElem1.setAttribute("street", "321 south st");
  addressElem1.setAttribute("city", "denver");
  addressElem1.setAttribute("state", "co");
  addressElem1.setAttribute("country", "usa");
  personElem1.appendChild(addressElem1);
  
  var personElem2 = doc.createElement("person");
  personElem2.setAttribute("first-name", "jed");
  personElem2.setAttribute("last-name", "brown");
  
  var addressElem3 = doc.createElement("address");
  addressElem3.setAttribute("street", "321 north st");
  addressElem3.setAttribute("city", "atlanta");
  addressElem3.setAttribute("state", "ga");
  addressElem3.setAttribute("country", "usa");
  personElem2.appendChild(addressElem3);  
  
  var addressElem5 = doc.createElement("address");
  addressElem5.setAttribute("street", "321 south avenue");
  addressElem5.setAttribute("city", "denver");
  addressElem5.setAttribute("state", "co");
  addressElem5.setAttribute("country", "usa");
  personElem2.appendChild(addressElem5);
  
  peopleElem.appendChild(personElem1);
  peopleElem.appendChild(personElem2);
  doc.appendChild(peopleElem);
  alert(doc.xml);//xml属性只对IE管用
 

JS解析XML适用于不用的浏览器

  • 2014年11月23日 15:04
  • 896B
  • 下载

XML解析工具-JS

  • 2016年07月12日 15:58
  • 860B
  • 下载

js解析XMl文件,兼容IE、Firefox、谷歌

loadXML = function(xmlFile){ var xmlDoc=null; var agent = navigator.userAgent.toLowerCase();...

JS解析XML实现省市县三级联动

  • 2012年09月29日 09:27
  • 29KB
  • 下载

IE、FireFox、Opera全兼容的JS解析XML文件实现省、市、县(区)三级联动效果

        之前曾写了一个关于JS解析XML文件实现两级联动的案例,但是发现在Opera、火狐等浏览器中存在不兼容现象,于是今天特别写了一个全兼容的省、市、县(区)三级联动效果的案例。下面是实现代...
  • sxpgog
  • sxpgog
  • 2011年03月22日 17:30
  • 24153

原创:Js解析xml文件并简单实现省市区级联菜单(并解决各浏览器兼容性问题).

前不久日本发生了一场惹人非议的地震中,因此也引发了中国购买食盐的狂热份子!然后又因发了一场退盐事件.然后80,90后们并没有参与其中,说明掌握科学知识的重要性.作为一名合格的大学生应该时刻保持清醒的头...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JS解析XML
举报原因:
原因补充:

(最多只允许输入30个字)