hello i need to get data from xml file,
here is the html code:
<!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>
and here is an example of my xml file:
<?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>
it works well, but not like i need to more explain i want to get all column data but separated based on its name attribute category, for example, if i choose the year 2001 i will get data column which name=Make correspond to this year, and when i choose make = Acura i will get model and trim correspond to this make.
example: year = 2001 => make data retreived = { Acura, bmw, Mercedes-Benz}
if i choose make = Acure => Model data retreived = { RL } and Trim data retreived { 3.5 4dr Sedan}
This will filter your objects then put them into an array, however I'm unclear what you want to do with the data after it is retrieved by year:
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);
}