关闭

JS解析XML

772人阅读 评论(0) 收藏 举报
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管用
 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:27121次
    • 积分:380
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:28篇
    • 译文:0篇
    • 评论:10条
    文章分类
    最新评论