Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/11/2006, 06:48
mleonsoft
 
Fecha de Ingreso: agosto-2006
Mensajes: 4
Antigüedad: 17 años, 9 meses
Puntos: 0
Leer XML con php

Hola deseo leer XML con PHP y he encontrado un código muy lindo para realizar esto, el problema es que me da error el codigo PHP. He encontrado 3 formas de leer XML con php:

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