1) Leer XML usando la libreria DOM
2) Usando el SAX parser
3) Con expresiones regulares
El que mas me ha gustado es el 1) Leer XML usando la libreria DOM. Porque soy nueva en esto y es un codigo corto y mas entendible
Mi archivo XML: "books.xml"
<?xml version="1.0"?>
<books>
<book>
<author>Jack Herrington</author>
<title>PHP Hacks</title>
<publisher>O'Reilly</publisher>
</book>
<book>
<author>Jack Herrington</author>
<title>Podcasting Hacks</title>
<publisher>O'Reilly</publisher>
</book>
</books>
Mi archivo php: "prueba2.php"
<?php
$doc = new DOMDocument();
$doc->load( 'books.xml' );
$books = $doc->getElementsByTagName( "book" );
foreach( $books as $book )
{
$authors = $book->getElementsByTagName( "author" );
$author = $authors->item(0)->nodeValue; -----------------ERROR ACA $publishers = $book->getElementsByTagName( "publisher" );
$publisher = $publishers->item(0)->nodeValue; ----------ERROR ACA $titles = $book->getElementsByTagName( "title" );
$title = $titles->item(0)->nodeValue; ------------------ERROR ACA echo "$title - $author - $publisher\n";
}
?>
Error en la linea:
$author = $authors->item(0)->nodeValue;
Error: Parse error: parse error, unexpected T_OBJECT_OPERATOR in D:\localhost\myapp\prueba2.php on line 9
Si comento esa linea, tengo error en la proxima linea con la misma sintaxis:
$publisher = $publishers->item(0)->nodeValue;
No se donde puede estar el error, he revisado los archivos y por ahora veo que tengo todo, trabajo con PHP 4.3.3-dev. Estuve buscando información y supuestamente la libreria DOM viene incluida en PHP 4.xxx.
He revisado y tengo configurado los archivos:
* extension=php_domxml.dll está en el php.ini sin comentar
* extension_dir =directorios es correcto en php.ini
* en dlls/ está "iconv.dll"
* en extensions/ está "php_domxml.dll"
* La referencia
No estoy segura si es algo de la instalacion o algo mal en el codigo. Desde ya, muchisimas gracias
Ines
