Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/03/2009, 00:56
letni
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 7 meses
Puntos: 1
Coger información de un XML

Hola, estoy intentando leer un archivo XML usando la libreria DOM pero algo falla, os dejo el código y el error que me da:

books.xml:

Código xml:
Ver original
  1. <?xml version="1.0"?>
  2. <books>
  3.     <book>
  4.         <author>Jack Herrington</author>
  5.         <title>PHP Hacks</title>
  6.         <publisher>O'Reilly</publisher>
  7.     </book>
  8.     <book>
  9.         <author>Jack Herrington</author>
  10.         <title>Podcasting Hacks</title>
  11.         <publisher>O'Reilly</publisher>
  12.     </book>
  13. </books>


Código php:
Ver original
  1. <?php
  2.     $doc = new DOMDocument();
  3.     $doc->load('books.xml');
  4.     $books = $doc->getElementsByTagName("book");
  5.     foreach($books as $book){
  6.         $authors   = $book->getElementsByTagName("author");
  7.         $author    = $authors->item(0)->nodeValue;
  8.         $publisher = $publishers->item(0)->nodeValue;
  9.         $title     = $titles->item(0)->nodeValue;
  10.     }
  11.     echo $authors . " " . $author . " " . $publisher . " " . $title;
  12. ?>

Pero obtengo el error: Fatal error: Call to a member function item() on a non-object in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\prueba.php on line 8

¿Me ayudáis?

Gracias.

EDITO: Lo solucioné:

Código php:
Ver original
  1. <?php
  2.     $doc = new DOMDocument();
  3.     $doc->load('books.xml');
  4.     $books = $doc->getElementsByTagName("book");
  5.     foreach($books as $book){
  6.         $authors   = $book->getElementsByTagName("author");
  7.         $author    = $authors->item(0)->nodeValue;
  8.         $publishers = $book->getElementsByTagName( "publisher" );
  9.         $publisher = $publishers->item(0)->nodeValue;
  10.         $titles = $book->getElementsByTagName( "title" );
  11.         $title     = $titles->item(0)->nodeValue;
  12.         echo "$title - $author - $publisher\n";
  13.     }
  14. ?>
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows

Última edición por letni; 20/03/2009 a las 02:07