jQuery,Ajax获取xml数据
你好,我需要从xml文件中获取数据 以下是html代码: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
<!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字符串,以便我可以修改代码。