ccc

XML: Mostrar el contenido de un fichero XML en PHP

peliculas.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!-- indica la version del documento XML -->
<raiz> <!--  es el tag raiz, debe ser unico -->
  <pelicula>
    <titulo>Lo que el viento se llevó</titulo>
    <anno>1939</anno>
  </pelicula>
  <pelicula>
    <titulo>Rebeca</titulo>
    <anno>1940</anno>
  </pelicula>
</raiz>
--------------------------------------------------
$xml = simplexml_load_file("peliculas.xml");
// print_r($xml);
foreach($xml->children() as $child)  {
 echo $child->titulo."<br>";
}

------------------------------------------------------------

Mostrar todo el contenido de todo un XML de forma recursiva:
peliculas2.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!-- indica la version del documento XML -->
<raiz> <!--  es el tag raiz, debe ser unico -->
 <pelicula>
   <titulo>Lo que el viento se llevó</titulo>
   <anno>1939</anno>
   <actores>
     <actor>
       <nombre>Vivien Leigh</nombre>
       <nacionalidad>Inglaterra</nacionalidad>
     </actor>
     <actor>
       <nombre>Clark Gable</nombre>
       <nacionalidad>EEUU</nacionalidad>
     </actor>
  </actores>
 </pelicula>
 <pelicula>
   <titulo>Rebeca</titulo>
   <anno>1940</anno>
   <actores>
     <actor>
       <nombre>Joan Fontaine</nombre>
       <nacionalidad>EEUU</nacionalidad>
     </actor>
     <actor>
       <nombre>Laurence Olivier</nombre>
       <nacionalidad>Inglaterra</nacionalidad>
     </actor>
     <actor>
       <nombre>George Sanders</nombre>
       <nacionalidad>EEUU</nacionalidad>
     </actor>
  </actores>
 </pelicula>
</raiz>
--------------------------------------------------------------------
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="utf-8">
</head>
<body>
<?php
// **********************************************
function displayChildrenRecursive($xmlObj,$depth=0) {
    foreach($xmlObj->children() as $child)    {
        echo "<br>";
        echo str_repeat("&nbsp;&nbsp;",$depth)."<strong>".$child->getName()."</strong>: ".$child;
        displayChildrenRecursive($child,$depth+1);
    }
}
$xml = simplexml_load_file("peliculas2.xml");
displayChildrenRecursive($xml);?>
</body>
</html>

Más información en: http://www.anerbarrena.com/php-simplexml-4382/

No hay comentarios:

Publicar un comentario