Bueno ahorita toy en otra pero este te puede servir para parsear un xml
<?php
Class XmlParse
{
var $parser;
var $fileXml;
var $Element;
var $miArray;
var $arrayCont;
var $flag;
var $i;
function XmlParse($file)
{
$this->fileXml = $file;
$this->parser = xml_parser_create();
$this->Init();
}
function Init()
{
xml_set_object($this->parser, $this);
xml_set_element_handler($this->parser, 'handlerInicial', 'handlerFinal');
xml_set_character_data_handler($this->parser, 'handlerDatos');
$this->miArray = array();
$this->arrayCont = array();
$this->flag = true;
}
function handlerInicial($parser, $nombre, $atributos)
{
if ($this->flag == true )
{
if (!array_key_exists($nombre,$this->miArray))
{
$this->miArray[$nombre] = array();
$this->arrayCont[$nombre] = 0;
}
}else{
$this->flag = true;
}
$this->Element = $nombre;
}
function handlerFinal($parser, $nombre)
{
$this->flag = false;
$this->arrayCont[$nombre]++;
}
function handlerDatos($parser, $dato)
{
if ($this->arrayCont[$this->Element] == "")
{
$this->arrayCont[$this->Element] = 0;
}
$this->miArray[$this->Element][$this->arrayCont[$this->Element]] = $dato;
}
function miParser()
{
if (!($fich = fopen($this->fileXml, 'r')))
{
die('No pude abrir el fichero XML: '.$this->fileXml);
return false;
}
while ($data = fread($fich, 512))
{
$resultado = xml_parse($this->parser, $data, feof($fich));
if (!$resultado)
{
die(sprintf("Error de XML: %s en la linea %d",xml_error_string(xml_get_error_code($this->parser)),xml_get_current_line_number($this->parser) ) );
xml_parser_free($this->parser);
}
}
return $this->miArray;
}
}
?>
PD. ta un poco cutre la clase pero toy en otra sorry
solo sirve para parsear el xml te devolvera el contenido en un array ya tu ve si la puedes mejorar
Saludos.
<?php
include("ClsXmlParse.php");
$var = new XmlParse("sitemap.xml");
print_r($var->miParser());
?>
por si te gusta las cosas completas xDºº se usa asi
Saludos .
RePD.
Esto No deberia ir en el foro de PHP??? para eso se creo no??