我无法从xml读取数据

时间:2016-06-23 05:40:25

标签: javascript jquery xml

我有一个onclick函数,其中有一个javascript函数,用于从xml中获取数据。它与jquery。但它不起作用。帮助plzzz。

jsp页面

<script>

            function read() {
                $.ajax({
                    url: "dictionary.xml",
                    datatype: "xml",
                    success: function data() {
                        $("ul").children().remove();
                        $(data).find("word").each(function () {
                            var info = '<li>Eng = ' + $(this).find("eng").text() + '</li><li>Beng = ' + $(this).find("beng").text() + '</li>';
                            $("ul").append(info);
                        });
                    }

                });
            }

        </script>
        <script src="WEB-INF/js/jquery.min.js" type="text/javascript"></script>
        <script src="WEB-INF/js/jquery-2.1.0.min.js" type="text/javascript"></script>
        <ul></ul>


        <a href="#"  onclick="read();">Read</a>

xml文件

<?xml version="1.0" ?>
<corporate>
 <word>
   <eng>Male</eng>
   <beng>Man</beng>
 </word>
 <word>
   <eng>Female</eng>
   <beng>Woman</beng>
 </word> 
</corporate>

2 个答案:

答案 0 :(得分:2)

在这里,您描述了一个没有参数但具有本地名称的函数:

success: function data() {

因此,当您尝试访问data时,实际上将您的函数传递给jQuery,这没有多大意义。

success: function data() {
    $(data).find("word").each(... // here, data is a function

data应该是一个论点:

success: function(data) {
    $(data).find("word").each(... // here, data is an XML object, passed to a handler

答案 1 :(得分:0)

 <script src="WEB-INF/js/jquery.min.js" type="text/javascript"></script>
 <script src="WEB-INF/js/jquery-2.1.0.min.js" type="text/javascript"> </script>

删除其中任何一个,因为这将创建两个对$ object的引用。

将它们放入标题或正文标记中,但在您的脚本之前。

working version

 function read() {
                    $.ajax({
                        url: "test.xml",
                        datatype: "xml",
                        success: function (data) { //change it to function(data)
                          console.log(data);//check what is comming...
                            $("ul").children().remove();
                            $(data).find("word").each(function () {
                                var info = '<li>Eng = ' + $(data).find("eng").text() + '</li><li>Beng = ' + $(data).find("beng").text() + '</li>';
                                $("ul").append(info);
                            });
                        }

                    });
                }