本帖最后由 shirley0214 于 2012-11-14 11:01:33 编辑

解决方案 »

  1.   

    <!DOCTYPE html>
    <html>
    <head>
    <title></title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
        //问题:$("#xml_contain").find("xml").find("*").size()→在谷歌,火狐浏览器中返回3,在IE中返回0.
        function getSize(){
            var size = $("#xml_contain").html().split("</").length-2;
            alert(size);
        }
    </script>
    </head>
    <body>
        <div id="xml_contain">
            <xml>
                <sd_base></sd_base>
                <sd_attr></sd_attr>
                <sd_item></sd_item>
            </xml>
        </div>
        <input type="button" onclick="getSize()" value="取得元素个数" />
    </body>
    </html>
      

  2.   

    要转化一下格式
    <script type="text/javascript">
    $(function(){
        var xml=$("#xml_contain").html();
        xml = $($.parseXML(xml)); 
        alert(xml.find('xml').children().size())
        alert(xml.find('xml').find('sd_attr').text())
    })
    </script>
    <div id="xml_contain">
        <xml>
            <sd_base>1</sd_base>
            <sd_attr>2</sd_attr>
            <sd_item>3</sd_item>
        </xml>
    </div>
      

  3.   

    <!DOCTYPE html>
    <html>
    <head>
    <title></title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
        //问题:$("#xml_contain").find("xml").find("*").size()→在谷歌,火狐浏览器中返回3,在IE中返回0.
        function getSize(){
            var xml =$("#xml_contain").html();
            
           //跨浏览器,ie和火狐解析xml使用的解析器是不一样的。  
            var xmlStrDoc=null;  
            if (window.DOMParser){// Mozilla Explorer  
              parser=new DOMParser();  
              xmlStrDoc=parser.parseFromString(xml,"text/xml");  
            }else{// Internet Explorer  
              xmlStrDoc=new ActiveXObject("Microsoft.XMLDOM");  
              xmlStrDoc.async="false";  
              xmlStrDoc.loadXML(xml);  
            }
            size = $(xmlStrDoc).find("xml").find("*").size();
            alert(size);
        }
    </script>
    </head>
    <body>
        <div id="xml_contain">
            <xml>
                <sd_base></sd_base>
                <sd_attr></sd_attr>
                <sd_item></sd_item>
            </xml>
        </div>
        <input type="button" onclick="getSize()" value="取得元素个数" />
    </body>
    </html>
      

  4.   

    IE请求XML文件时,将它作为文本对象加载,之后需要我们手动转成XML类型的数据才可以使用,而其他浏览器会直接装载XML类型数据。
      

  5.   

        shirley0214
        等级:Blank
        结帖率:0%