Uno de los parsers XML más sencillos de utilizar que nos ofrece PHP es simpleXML. Viene por defecto en la versión 5 y posteriores de PHP. SimplePHP añade una serie de métodos para acceder de forma bastente sencilla a nuestros archivos XML.
//dado el siguiente archivo XML
<?xml version="1.0" encoding="utf-8"?>
<items>
<item id="1">
<nombre>Producto Uno</nombre>
<precio>250</precio>
<cantidad>2</cantidad>
</item>
<item id="2">
<nombre>Producto Dos</nombre>
<precio>120</precio>
<cantidad>1</cantidad>
</item>
<item id="3">
<nombre>Producto Tres</nombre>
<precio>20</precio>
<cantidad>5</cantidad>
</item>
</items>
//cargamos el archivo XML
$xml = simplexml_load_file("items.xml");
//mostramos todo el contenido del archivo
$str = $xml->asXML();
//extraemos directamente un elemento
$producto = $xml->item[0]->nombre;
//obtenemos un array con todos los nodos
//que dependen del principal
$arr = $xml->children();
//recorremos la matriz de items buscando
//a la vez los descendientes del primer item
foreach ($arr->children() as $etiqueta => $valor) {
echo $etiqueta . ": " . $valor;
}
//acceder a los atributos
//mostramos el atributo id del segundo item
echo $xml->item[1]["id"];
//mostramos solo los elementos con el atributo id par
foreach ($arr as $item) {
if ($item["id"] % 2 == 0) echo $item->nombre;
}