jQuery,Ajax获取xml数据

jQuery,Ajax获取xml数据,jquery,ajax,xml,Jquery,Ajax,Xml,你好,我需要从xml文件中获取数据 以下是html代码: <!DOCTYPE html> <html> <head> <script type="text/javascript"> var xml; $(document).ready(function(){ $.ajax({ type: "GET", url: "tt.x

你好,我需要从xml文件中获取数据

以下是html代码:

<!DOCTYPE html>
<html>
<head>

    <script type="text/javascript">
       var xml;
        $(document).ready(function(){
            $.ajax({
                type: "GET",
                url: "tt.xml",
                dataType: "xml",
                success: xmlParser
            });
        }); 
        function xmlParser(data) {
            xml = data;

            $('#load').fadeOut();

            $(xml).find("column").each(function()
            {

              var $col = $(this); 
              var name = $col.attr("name");
              $("#list").append("<li>"+ $col.text() + "</li>");

            });

        }
    </script>

</head>
<body >

<ul id="list"></ul>

</body>
</html>
下面是我的xml文件的一个示例:

<?xml version="1.0" encoding="utf-8"?>

<pma_xml_export version="1.0" xmlns:pma="http://www.phpmyadmin.net/some_doc_url/">
    <!--
    - Structure schemas
-->
<pma:structure_schemas>
    <pma:database name="makes_data" collation="latin1_swedish_ci" charset="latin1">
        <pma:table name="Sept2014">
            CREATE TABLE `Sept2014` (
            `Year` int(4) DEFAULT NULL,
            `Make` varchar(13) DEFAULT NULL,
            `Model` varchar(32) DEFAULT NULL,
            `Trim` varchar(73) DEFAULT NULL,
            `Engine Size` varchar(17) DEFAULT NULL,
            `Engine Cylinder` varchar(17) DEFAULT NULL,
            `Engine Compressor Type` varchar(21) DEFAULT NULL,
            `Transmission` varchar(17) DEFAULT NULL
            ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
        </pma:table>
    </pma:database>
</pma:structure_schemas>

    <!--
    - Database: 'makes_data'
-->
<database name="makes_data">
    <!-- Table Sept2014 -->

    <table name="Sept2014">
        <column name="Year">2001</column>
        <column name="Make">Acura</column>
        <column name="Model">RL</column>
        <column name="Trim">3.5 4dr Sedan</column>
        <column name="Engine Size">3.5L</column>
        <column name="Engine Cylinder">6cyl</column>
        <column name="Engine Compressor Type">dd</column>
        <column name="Transmission">AUTOMATIC</column>
    </table>
    <table name="Sept20141">
        <column name="Year">2001</column>
        <column name="Make">bmw</column>
        <column name="Model">RL</column>
        <column name="Trim">3.5 4dr Sedan </column>
        <column name="Engine Size">3.5L</column>
        <column name="Engine Cylinder">6cyl</column>
        <column name="Engine Compressor Type">dd</column>
        <column name="Transmission">AUTOMATIC</column>
    </table>
    <table name="Sept20142">
        <column name="Year">2004</column>
        <column name="Make">Acura</column>
        <column name="Model">RL</column>
        <column name="Trim">3.5 4dr Sedan</column>
        <column name="Engine Size">3.5L</column>
        <column name="Engine Cylinder">6cyl</column>
        <column name="Engine Compressor Type">dd</column>
        <column name="Transmission">AUTOMATIC</column>
    </table>

    <table name="Sept2014">
            <column name="Year">2009</column>
            <column name="Make">Mercedes-Benz</column>
            <column name="Model">E-Class</column>
            <column name="Trim">E550 4MATIC 4dr Sedan AWD</column>
            <column name="Engine Size">5.5L </column>
            <column name="Engine Cylinder">8cyl</column>
            <column name="Engine Compressor Type">dd</column>
            <column name="Transmission">AUTOMATIC</column>
        </table>
        <table name="Sept2014">
            <column name="Year">2005</column>
            <column name="Make">Mercedes-Benz</column>
            <column name="Model">E-Class</column>
            <column name="Trim">E550 4dr Sedan</column>
            <column name="Engine Size">5.5L </column>
            <column name="Engine Cylinder">8cyl</column>
            <column name="Engine Compressor Type">cc</column>
            <column name="Transmission">AUTOMATIC</column>
        </table>
        <table name="Sept2014">
            <column name="Year">2001</column>
            <column name="Make">Mercedes-Benz</column>
            <column name="Model">E-Class</column>
            <column name="Trim">E550 4dr Sedan</column>
            <column name="Engine Size">5.5L </column>
            <column name="Engine Cylinder">8cyl</column>
            <column name="Engine Compressor Type">cc</column>
            <column name="Transmission">AUTOMATIC</column>
        </table>

</database>
</pma_xml_export>
它工作得很好,但不象我需要更多解释的那样,我想获得所有列数据,但根据其名称属性类别进行分离,例如,如果我选择2001年,我将获得数据列,其中名称=Make对应于今年,当我选择Make=Acura时,我将获得与此Make对应的模型和修剪

例如: 年份=2001=>检索数据={Acura、宝马、奔驰}


如果我选择make=Acure=>Model data retreived={RL}和Trim data retreived{3.5 4dr Sedan}

这将过滤对象,然后将它们放入数组中,但是我不清楚在按年份检索数据后,您想对数据做什么:

function xmlParser(data) {
    $('#load').fadeOut();

    var property = 2001,
    propertyName = 'year',
    getProperty = 'Make';

    data = $.grep(data, function( obj, index ) {
      return obj[propertyName] == property;
    });

    var collection = [];
    $.each(data, function( index, obj ) {
        collection.push(obj[getProperty]);
    });
    console.log(collection);
}

请发布请求的XML字符串,以便我可以修改代码。