使用jQuery解析XML

ojsjcaue  于 2023-06-29  发布在  jQuery
关注(0)|答案(2)|浏览(139)

好的,所以我可以用jQuery解析XML,但它似乎只在Firefox中工作,而不是IE。
我的XML文件:

<?xml version="1.0" encoding="utf-8" ?>
<Answers>
    <Question>
        <question-title>Question One - Title</question-title>
        <a>24</a>
        <b>36</b>
        <c>10</c>
        <d>30</d>
    </Question>
</Answers>

解析XML的代码:

var xmlType = 'xml';
        if ($.browser.msie) {
            xmlType = 'text/xml'
        }
$.ajax({
            type: "GET",
            url: "answers.xml",
            dataType: xmlType,
            success: function(xml) { //if the XML exists
                $(xml).find('Answers').each(function(){ //go inside answers
                    $(this).find('Question').each(function(){ //for each question...
                        var moo = $(this).find('question-title').text();
                        $('.question-title').append(moo); //append the question title
                        
                        var a = $(this).find('a').text();
                        var b = $(this).find('b').text();
                        var c = $(this).find('c').text();
                        var d = $(this).find('d').text();
                        
                        $('.label1').html(a+'%');
                        $('.label2').html(b+'%');
                        $('.label3').html(c+'%');
                        $('.label4').html(d+'%');
                        
                        $('.input1').val(a);
                        $('.input2').val(b);
                        $('.input3').val(c);
                        $('.input4').val(d);
                        
                        $('.cu-mid','.cuboid.'+'green1').animate({
                            height: a
                        }, 550);
                        $('.cu-mid','.cuboid.'+'green2').animate({
                            height: b
                        }, 550);
                        $('.cu-mid','.cuboid.'+'green3').animate({
                            height: c
                        }, 550);
                        $('.cu-mid','.cuboid.'+'green4').animate({
                            height: d
                        }, 550, function() {
                            
                            $('.cu-mid').animate({
                                height: '+='+50
                            }, 550);
                            
                        });
                    });
                });
            }
        });

FireFox中的输出是所需元素的正确高度。但在IE -没什么...什么都没有
一开始我以为这可能是dataType,所以我添加了一个if语句。那也没用
有什么想法吗
干杯

edit:我在IE中得到以下错误:

无效参数行66 -结束括号在:$(xml).find('Answers').each(function(){
对象需要行1 -???

i7uq4tfw

i7uq4tfw1#

没关系,我想明白了:

function runQuiz(whichQ) {
            if (window.XMLHttpRequest) { 
                xmlhttp = new XMLHttpRequest(); 
            } else { 
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
            } 
            xmlhttp.open("GET", whichQ, false); 
            xmlhttp.send(); 
            xmlDoc = xmlhttp.responseXML; 

            var a = xmlDoc.getElementsByTagName("a");
            var a2 = $(a).text();
            var b = xmlDoc.getElementsByTagName("b");
            var b2 = $(b).text();
            var c = xmlDoc.getElementsByTagName("c");
            var c2 = $(c).text();
            var d = xmlDoc.getElementsByTagName("d");
            var d2 = $(d).text();

            $('.label').fadeOut(350);
            $('.cu-mid','.cuboid.'+'green1').animate({ height: a2   }, 550);
            $('.cu-mid','.cuboid.'+'green2').animate({ height: b2   }, 550);
            $('.cu-mid','.cuboid.'+'green3').animate({ height: c2   }, 550);
            $('.cu-mid','.cuboid.'+'green4').animate({ height: d2   }, 550, function() {
                $('.cu-mid').animate({
                    height: '+='+50
                }, 550, function() {
                    $('.label1').html(a2+'%');
                    $('.label2').html(b2+'%');
                    $('.label3').html(c2+'%');
                    $('.label4').html(d2+'%');
                    $('.label').fadeIn(350);
                }); 
            });
        }

$(document).ready(function() {
   runQuiz('question1.xml');
});
soat7uwm

soat7uwm2#

在不同的Internet Explorer版本中,获取xmlHttpRequest对象的最佳方式有所不同。
请参阅有关XMLHttpRequest Object的MSDN注解

相关问题