XML y PHP, duda general.

Hola, bueno me he puesto con esto del XML, y las relaciones que permite con otros lenguajes como PHP y AJAX y bien me doy cuenta de que por lo visto Datos de caracter estaticos (de esos que almacenas en tu base de datos para solo lectura) podrian estar en archivos XML.

La duda es si por ejemplo yo almaceno en XML datos sobre X tema, ej:

Coches que tengo en mi garage:

Modelo
Precio
Color
Km
Potencia

Bien almacenar estos datos en 1 archivo XML, luego seria posible tratarlos con PHP como si se tratases de una base de datos SQL, en la que extraes los datos en una variable o en 1 array y luego puedes operar con ellos?.

No se si he sido capaz de expresar correctamente la pregunta.

Gracias por vuestras respuestas.
Hola:

Lo más simple es utilizar la clase SimpleXML. Se usa así:

<?xml version="1.0" ?>
<coches>
  <coche>
    <modelo>ModeloA</modelo>
    <Precio>...</Precio>
    <!-- El resto de los elementos -->
  </coche>
  <!-- Repites los coches -->
</coches>

$xml = simplexml_load_file( 'nombre_archivo.xml' );
echo $xml->coche[0]->modelo; // Mostraría "ModeloA" sin comillas

Luego, $xml->coche[1]->modelo tendrá el modelo del siguiente coche y así sucesivamente. Obviamente dependerá de la estructura del archivo XML, pero básicamente es eso. El resto de las propiedades se accede igual:

$xml->coche->precio
$xml->coche->color
$xml->coche->potencia
$xml->coche->km
etc.

Saludos.
Vale creo que mas o menos resolviste mi duda,

Pero ahora me has crado 2 nuevas jejeje , (segun el ejemplo que tu me has dado)

Esta variable $xml->coche[0]->modelo; contiene ModeloA (si fuese un Numero por ejemplo 3, yo podria sumar $xml->coche[0]->modelo + $xml->coche[1]->modelo; ??)

La otra duda es, si el [0] tengo que indicarlo en el XML o simeplemente al haber 2 o mas etiquetas iguales se enumeran solad de menor a mayor empezando en 0.


Gracias por tu ayuda.
A ver...

Esta variable $xml->coche[0]->modelo; contiene ModeloA (si fuese un Numero por ejemplo 3, yo podria sumar $xml->coche[0]->modelo + $xml->coche[1]->modelo; ??)

Sí, se podría. A pesar de que PHP no tiene tipos de variables, asegúrate de convertir a un número la variable, así:

$suma = 0;
$suma += (int) $xml->coche[0]->km;
// Así podrías sumar todo el kilometraje, por ejemplo.

si el [0] tengo que indicarlo en el XML o simeplemente al haber 2 o mas etiquetas iguales se enumeran solad de menor a mayor empezando en 0.

No, no lo debes indicar en el XML. PHP leerá el archivo y convertirá la etiqueta padre (que en el ejemplo anterior sería <coches></coches>) en un arreglo de objetos; cada índice del arreglo será un objeto distinto del tipo coche y las propiedades del objeto serán los nodos hijo del coche (en singular) correspondiente.

Saludos :D.