peter2001
asked on
xml to array reading the array
Hi
i use the function below to parse a xml file
which outputs the xml into an array like this below
how would i just read the " [year] => 2005 " part
as i need to be able get that and just echo it
Regards
Pete
Array
(
[decoded_vin_data] => Array
(
[decoder_version] => 6.0.1
[decoder_error] => Array
(
[error_code] => Array
(
)
[error_message] => Array
(
)
)
[vin_number] => Array
(
[vin_error] => Array
(
[error_code] => Array
(
)
[error_message] => Array
(
)
)
[common_data] => Array
(
[basic_data] => Array
(
[year] => 2005
[make] => Chrysler
[model] => PT Cruiser
[trim] => Touring
[style] => Touring 4dr Wagon (2.4L 4cyl 5M)
[vehicle_type] => Car
[body_type] => Wagon
[body_subtype] => Array
(
)
[doors] => 4
[model_number] => PTCP44
[package_code] => Array
(
)
[country_of_manufacture] => Array
(
)
[plant] => TOLUCA, MEXICO
)
[specifications] => Array
(
[category] => Array
(
[0] => Array
(
[drive_type] => FWD
[hub_type_4wd] => Array
(
)
)
[1] => Array
(
[acceleration_to_100] => 0
[acceleration_to_60] => 0
[aerodynamic_drag] => 0
[braking_distance] => 0
[turning_circle] => 36.7
)
i use the function below to parse a xml file
which outputs the xml into an array like this below
how would i just read the " [year] => 2005 " part
as i need to be able get that and just echo it
Regards
Pete
Array
(
[decoded_vin_data] => Array
(
[decoder_version] => 6.0.1
[decoder_error] => Array
(
[error_code] => Array
(
)
[error_message] => Array
(
)
)
[vin_number] => Array
(
[vin_error] => Array
(
[error_code] => Array
(
)
[error_message] => Array
(
)
)
[common_data] => Array
(
[basic_data] => Array
(
[year] => 2005
[make] => Chrysler
[model] => PT Cruiser
[trim] => Touring
[style] => Touring 4dr Wagon (2.4L 4cyl 5M)
[vehicle_type] => Car
[body_type] => Wagon
[body_subtype] => Array
(
)
[doors] => 4
[model_number] => PTCP44
[package_code] => Array
(
)
[country_of_manufacture] => Array
(
)
[plant] => TOLUCA, MEXICO
)
[specifications] => Array
(
[category] => Array
(
[0] => Array
(
[drive_type] => FWD
[hub_type_4wd] => Array
(
)
)
[1] => Array
(
[acceleration_to_100] => 0
[acceleration_to_60] => 0
[aerodynamic_drag] => 0
[braking_distance] => 0
[turning_circle] => 36.7
)
<?php
$clean_xml_array=xml2array('file.xml');
echo '<pre>';
print_r($clean_xml_array);
//This function was taken from php.net (http://us2.php.net/manual/en/function.xml-parse.php)
// user: lz_speedy at web dot de - post date:30-Dec-2008 06:20
//this function turns an XML string in to a well structured array
function xml2array($url, $get_attributes = 1, $priority = 'tag')
{
$contents = "";
if (!function_exists('xml_parser_create'))
{
return array ();
}
$parser = xml_parser_create('');
if (!($fp = @ fopen($url, 'rb')))
{
return array ();
}
while (!feof($fp))
{
$contents .= fread($fp, 8192);
}
fclose($fp);
xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, "UTF-8");
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($parser, trim($contents), $xml_values);
xml_parser_free($parser);
if (!$xml_values)
return; //Hmm...
$xml_array = array ();
$parents = array ();
$opened_tags = array ();
$arr = array ();
$current = & $xml_array;
$repeated_tag_index = array ();
foreach ($xml_values as $data)
{
unset ($attributes, $value);
extract($data);
$result = array ();
$attributes_data = array ();
if (isset ($value))
{
if ($priority == 'tag')
$result = $value;
else
$result['value'] = $value;
}
if (isset ($attributes) and $get_attributes)
{
foreach ($attributes as $attr => $val)
{
if ($priority == 'tag')
$attributes_data[$attr] = $val;
else
$result['attr'][$attr] = $val; //Set all the attributes in a array called 'attr'
}
}
if ($type == "open")
{
$parent[$level -1] = & $current;
if (!is_array($current) or (!in_array($tag, array_keys($current))))
{
$current[$tag] = $result;
if ($attributes_data)
$current[$tag . '_attr'] = $attributes_data;
$repeated_tag_index[$tag . '_' . $level] = 1;
$current = & $current[$tag];
}
else
{
if (isset ($current[$tag][0]))
{
$current[$tag][$repeated_tag_index[$tag . '_' . $level]] = $result;
$repeated_tag_index[$tag . '_' . $level]++;
}
else
{
$current[$tag] = array (
$current[$tag],
$result
);
$repeated_tag_index[$tag . '_' . $level] = 2;
if (isset ($current[$tag . '_attr']))
{
$current[$tag]['0_attr'] = $current[$tag . '_attr'];
unset ($current[$tag . '_attr']);
}
}
$last_item_index = $repeated_tag_index[$tag . '_' . $level] - 1;
$current = & $current[$tag][$last_item_index];
}
}
elseif ($type == "complete")
{
if (!isset ($current[$tag]))
{
$current[$tag] = $result;
$repeated_tag_index[$tag . '_' . $level] = 1;
if ($priority == 'tag' and $attributes_data)
$current[$tag . '_attr'] = $attributes_data;
}
else
{
if (isset ($current[$tag][0]) and is_array($current[$tag]))
{
$current[$tag][$repeated_tag_index[$tag . '_' . $level]] = $result;
if ($priority == 'tag' and $get_attributes and $attributes_data)
{
$current[$tag][$repeated_tag_index[$tag . '_' . $level] . '_attr'] = $attributes_data;
}
$repeated_tag_index[$tag . '_' . $level]++;
}
else
{
$current[$tag] = array (
$current[$tag],
$result
);
$repeated_tag_index[$tag . '_' . $level] = 1;
if ($priority == 'tag' and $get_attributes)
{
if (isset ($current[$tag . '_attr']))
{
$current[$tag]['0_attr'] = $current[$tag . '_attr'];
unset ($current[$tag . '_attr']);
}
if ($attributes_data)
{
$current[$tag][$repeated_tag_index[$tag . '_' . $level] . '_attr'] = $attributes_data;
}
}
$repeated_tag_index[$tag . '_' . $level]++; //0 and 1 index is already taken
}
}
}
elseif ($type == 'close')
{
$current = & $parent[$level -1];
}
}
return ($xml_array);
}
?>
hmm... echo $source["decoded_vin_data" ]["vin_num ber"]["com mon_data"] ["year"]; ?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Hi
thanks that's the bit that was throwing me the order
cheers for you help
thanks that's the bit that was throwing me the order
cheers for you help
ASKER
thank you