Como pegar um atribulo do xml pelo parse sax PHP?
Consigo pegar todos os valores do xml através do código abaixo, mas não consigo pegar os atributos.
Código:
<?php
$tutors = array();
$elements = null;
// Called to this function when tags are opened
function startElements($parser, $name, $attrs)
{
global $tutors, $elements;
if(!empty($name))
{
if ($name == 'OFFERNAME') {
// creating an array to store information
$tutors []= array();
}
$elements = $name;
}
}
// Called to this function when tags are closed
function endElements($parser, $name)
{
global $elements;
if(!empty($name))
{
$elements = null;
}
}
// Called on the text between the start and end of the tags
function characterData($parser, $data)
{
global $tutors, $elements;
if(!empty($data))
{
if ($elements == 'PRODUCTNAME' || $elements == 'CATEGORYNAME' || $elements == 'PRICEVALUE' || $elements == 'PRICEFROMVALUE')
{
$tutors[count($tutors)-1][$elements] = trim($data);
}
}
}
// Creates a new XML parser and returns a resource handle referencing it to be used by the other XML functions.
$parser = xml_parser_create();
xml_set_element_handler($parser, "startElements", "endElements");
xml_set_character_data_handler($parser, "characterData");
// open xml file
if (!($handle = fopen('url aqui', "r"))) {
die("could not open XML input");
}
while($data = fread($handle, 4096)) // read xml file
{
xml_parse($parser, $data); // start parsing an xml document
}
xml_parser_free($parser); // deletes the parser
$i=1;
foreach($tutors as $course)
{
echo "No - ".$i.'<br/>';
echo "product Name - ".$course['OFFERNAME'].'<br/>';
echo "Category - ".$course['CATEGORYNAME'].'<br/>';
echo "Price - ".$course['PRICEVALUE'].'<br/>';
echo "Price Fom - ".$course['PRICEFROMVALUE'].'<hr/>';
$i++;
}
?>
xml:

Resultado:

Como faço para pegar os atributos?Discussão (2)
Carregando comentários...