Vamos a creear un archivo de XML en dondel guardariamos informaccion acerca de nuestros usuarios. Cada usuario tendra la siguiente informacion.
- Nombre
- Sexo – femenino (f) o masculino (m)
- Edad
- fecha de nacimiento – En formato de numero y fecha
Cada usuario diferente va a estar en una etiqueta <usuario> y todas estas etiquetas estaran en la etiqueta <usuarios>.
El Documento XML
Tu documento XML se debe de ver asi, guardalo como usuarios.xml
<?xml version="1.0" encoding="UTF-8"?> <usuarios> <usuario> <nombre sexo="masculino"> Juan Carlos </nombre> <edad> 25 </edad> <fecha-de-nacimiento m="2" d="28" a="1984"> Febrero 28, 1984 </fecha-de-nacimiento> </usuario> <usuario> <nombre sexo="femenino"> Cristina Rojas </nombre> <edad> 21 </edad> <fecha-de-nacimiento m="5" d="30" a="1988"> Mayo 30, 1988 </fecha-de-nacimiento> </usuario> </usuarios>
Como Leer el Archivo Con PHP
PHP5 viene con una funcion llamada simplexml_load_file que interpreta archivos de XML y los pone en una variable. Es muy similar a la funcion file_get_contents la cual se utiliza para leer todo tipo archivos.
Tambien hay una funcion que se llama simplexml_load_string para leer el contenido XML en format string de variables. En corto, simplexml_load_file($nombreDelArchivo) hace lo mismo que simplexml_load_string(file_get_contents($nombreDelArchivo)).
Asumiendo que el archivo XML y el archivo PHP , el cual pudes nombrar como gustes, estan en la misma carpeta has lo siguiente en el archivo PHP.
<?php $archivo='usuarios.xml'; $usuarios=simplexml_load_file($archivo);
Ahora la variable $usuarios contiene un (array) matriz de el archivo XML.
Como Acceder Cada Etiqueta XML
Como todas la matrizes en PHP, esta matriz de XML comiensa con cero. Para acceder el nombre del primer y segundo usuario respectivamente, tendras que hacer lo siguiente.
echo $usuarios->usuario[0]->nombre; // mostrara Juan Carlos echo $usuarios->usuario[1]->nombre; // mostrara Cristina Rojas
La etiqueta de fecha de nacimiento es un poco differente ya que contiene guiones. Lo siguiente regresario un zero.
echo $usuarios->usuario[0]->fecha-de-nacimiento; // resulta en zero
La forma correcta de accesar la fecha del primer usuario es la siguiente.
echo $usuarios->usuario[0]->{"fecha-de-nacimiento"};
Como Obtener Los Atributos De Cada Etiqueta
Cada atributo de format una matriz en la etiqueta, por ejemplo para obter el atributo "sexy" de la etiqueta nomber, se hace lo siguiente.
echo $usuarios->usuario[0]->nombre['sexo'];
Lo mismo se tiene que hacer para obtener el dia, mes y añno de cada fecha de nacimiento.
echo $usuarios->usuario[0]->{"fecha-de-nacimiento"}['a']; // muesra el añno
echo $usuarios->usuario[0]->{"fecha-de-nacimiento"}['m']; // muestra el mes
echo $usuarios->usuario[0]->{"fecha-de-nacimiento"}['d']; // muestra el dia
Como Leer Todo El Archivo XML a La Vez
No siempre sabras cuantos resultados tiene el archivo XML, y/o tal vez no te importe y so lo quieres mostrar todos los resultados.
Para mostrar todos los resultados en la orden como fueron obtenidos tendras que poner el array $usuarios en un foreach loop.
El siguiente codigo mostraria el nombre de cada usuario.
foreach($usuarios as $usuario)
{
echo '
';
echo '';
echo $usuario->nombre;
echo '
';
}
Con este foreach loop puedes representar cada etiqueta con la variable $usuario y asi no tendras que utilizar el indice de cada matriz. Esto es todo por hoy.
Si te gusto este articulo no olvides dejar un comentario, subscribirte y compartir el articulo con tus amigos en facebook o twitter.
