你把你读取的方法帖出来吧,应该和正常XML是相同的读法

解决方案 »

  1.   

    <script type="text/javascript">
    function getXMLArray(xmlDoc, name) {
      var keys = name.split('.');
      var node = xmlDoc.documentElement;      // 得到根节点
      var rtn = new Array();
      var n = 0;  for(var i=0; i<keys.length; i++) {
        var childs = node.childNodes;       // 得到子节点
        var key = keys[i];
     for(var k=0; k<childs.length; k++) {      
       var child = childs[k];
       if(child.nodeName == key) {     // 判断子节点是否符合
      if(i == keys.length-1) {
              rtn[n] = child;
        n++;
      } else {
        node = child;
        break;
      }
       }
     }
      }
      return rtn;
    }
    /**
     * 得到由getXMLArray函数得到对象中的值
     * @param node 节点对象
     * @param name 
     * @return 返回 String 
     */
    function getValue(node, name) {
      var keys = name.split('.');
      
      for(var i=0; i<keys.length; i++) {
        var childs = node.childNodes;       // 得到子节点
        var key = keys[i];
     for(var k=0; k<childs.length; k++) {      
       var child = childs[k];
       if(child.nodeName == key) {     // 判断子节点是否符合
      if(child.childNodes.length == 1) {         
        // 如果没有字节点,返回值
        return child.text;
      } else {                                 
        // 还有子节点,继续分析
        node = child;
        break;
      }
       }
     }
      }
      return "";
    }
    var request = false;
    try {
      request = new XMLHttpRequest();
    } catch (trymicrosoft) {
      try {
        request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (othermicrosoft) {
        try {
          request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (failed) {
          request = false;
        }
      }
    }if (!request)
      alert("Error initializing XMLHttpRequest!");var url = "http://blog.sina.com.cn//sns/service.php?m=aList&uid=1130045804";
         request.open("GET", url, true);
     request.onreadystatechange = updatePage;
         request.send(null);alert("success");
    function updatePage()
    {
    if (request.readyState == 4)
     if (request.status == 200)
       {
        var xmlTxt=request.responseText;
    alert(xmlTxt);
    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async = false;
    xmlDoc.loadXML(xmlTxt);
    var list = getXMLArray(xmlDoc, "item");
    for(var i=0; i<list.length; i++) {
      var obj = list[i];
      document.write(getValue(obj, "title"));
      document.write(getValue(obj, "link"));
      document.write("<br\/>");
    }

    }
    }
    </script>发送请求那些都是成功的,就是读取没反映
      

  2.   

    去掉你的发送代码,大体上是这个样子<script language="javascript">
    function getXMLArray(xmlDoc, name) {  var keys = name.split('.');
      var node = xmlDoc.documentElement;      // 得到根节点
      var rtn = new Array();
      rtn=xmlDoc.selectNodes("//rss/channel/item")
      return rtn;
    }
    /**
     * 得到由getXMLArray函数得到对象中的值
     * @param node 节点对象
     * @param name 
     * @return 返回 String 
     */
    function getValue(node, name) {
      var keys = name.split('.');
      
      for(var i=0; i<keys.length; i++) {
        var childs = node.childNodes;       // 得到子节点
        var key = keys[i];
     for(var k=0; k<childs.length; k++) {      
       var child = childs[k];
       if(child.nodeName == key) {     // 判断子节点是否符合
      if(child.childNodes.length == 1) {         
        // 如果没有字节点,返回值
        return child.text;
      } else {                                 
        // 还有子节点,继续分析
        node = child;
        break;
      }
       }
     }
      }
      return "";
    }var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.load("1.xml");var list = getXMLArray(xmlDoc, "item");
    alert(list)
    for(var i=0; i<list.length; i++) {
      var obj = list[i];
      document.write(getValue(obj, "title"));
      document.write(getValue(obj, "link"));
      document.write("<br\/>");
    }
    </script>还有存在编码问题,试试把xml改为gb2312
      

  3.   

    XML是从新浪博客获取的,我没法改他的编码啊。楼上的大哥测试你的方法行吗?