已知一个XML,
<?xml version="1.0" encoding="UTF-8" standalone="no"?><response><record address="沙港村"/><record address="王家桥村"/>......</response>很长
现要取出第6到第10个record,返回一个新的XML
在js中完成

解决方案 »

  1.   

    只用过java dom解析过  不过dom对任何都一样的http://hi.baidu.com/rayson0405/blog/item/8a50006ea09c77dc81cb4a80.html
      

  2.   

    function load(file){
    var doc;
    if (window.ActiveXObject) {
    doc = new ActiveXObject('Microsoft.XMLDOM');
    } else if (document.implementation && document.implementation.createDocument) {
    doc = document.implementation.createDocument('', '', null);
    }
    if (doc) {
    doc.async = false;
    doc.load(file);
    }
    return doc;
    }function getXML(node){
    return node.xml ? node.xml : (new XMLSerializer()).serializeToString(node);
    }var xml = load('demo.xml');
    if (xml) {
    var ret = '', records = xml.getElementsByTagName("record");
    for (var i = 3; i < 10; i++) 
    ret += getXML(records[i]);
    alert('<?xml version="1.0" encoding="UTF-8" standalone="no"?><response>' + ret + '</response>')
    }
    alert(ret);
      

  3.   

    alert(ret);//去掉这句,忘记删掉了
      

  4.   

    我的XML不是文件,是后台返回过来的一个字符串
      

  5.   

    ajax会自动解析返回的xml,xhr为ajax对象
    var xml = xhr.responseXML;
    if (xml) {
        var ret = '', records = xml.getElementsByTagName("record");
        for (var i = 3; i < 10; i++) ret += getXML(records[i]);
        alert('<?xml version="1.0" encoding="UTF-8" standalone="no"?><response>' + ret + '</response>')
    }
      

  6.   

    function getXML(node){
    return node.xml ? node.xml : (new XMLSerializer()).serializeToString(node);
    }function creatXHR(){
    if (window.ActiveXObject) return new window.ActiveXObject('Microsoft.XMLHTTP');
    else if (window.XMLHttpRequest) return new window.XMLHttpRequest();
    }var xml = load('demo.xml');
    var xhr = creatXHR();
    if (xhr) {
    xhr.open('GET', 'demo.xml?rnd=' + (new Date()).getTime(), true);
    xhr.onreadystatechange = function(){
    if (xhr.readyState == 4 && xhr.status == 200) {
    var ret = '', records = xhr.responseXML.getElementsByTagName("record");
    for (var i = 3; records[i] && i < 10; i++) ret += getXML(records[i]);
    if (records.length) alert('<?xml version="1.0" encoding="UTF-8" standalone="no"?><response>' + ret + '</response>');
    }
    }
    xhr.send(null);
    }demo.xml
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <response>
    <record address="沙港村"/>
    <record address="王家桥村"/>
    <record address="沙港村"/>
    <record address="王家桥村"/>
    <record address="沙港村"/>
    <record address="王家桥村"/>
    <record address="沙港村"/>
    <record address="王家桥村"/>
    <record address="沙港村"/>
    <record address="王家桥村"/>
    <record address="沙港村"/>
    <record address="王家桥村"/>
    <record address="沙港村"/>
    <record address="王家桥村"/>
    <record address="沙港村"/>
    <record address="王家桥村"/>
    <record address="沙港村"/>
    <record address="王家桥村"/>
    </response>