Retroceder   Foros del Web > Programación para sitios web > PHP > PHP orientado a objetos

Respuesta
 
Herramientas Desplegado
Antiguo 22-feb-2008, 11:12   #1 (permalink)
Valentinoo ha deshabilitado el karma
 
Fecha de Ingreso: abril-2007
Mensajes: 23
Duda SimpleXML

Buenas Tardes,

Les pido ayuda con el siguiente xml

<ns:book xmlns:ns="http://quickstart.samples/xsd">
<ns:title>Titulo</ns:title>
</ns:book>

Mi pregunta es: ¿Como puedo sacar el Titulo con SimpleXML?

He intentado con el siguiente código y nada:
$xml = simplexml_load_file('prueba.xml');

echo $xml->title

Gracias,

Valentinoo
Valentinoo está desconectado   Responder Citando
Antiguo 22-feb-2008, 12:17   #2 (permalink)
Moderador
GatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy pronto
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: Queretaro, Mexico
Mensajes: 11.600
Re: Duda SimpleXML

Segun el manual de SimpleXML, puedes hacer esto:
Código PHP:
echo $xml->{'ns:book'}->{'ns:title'}; 
Saludos.
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 22-feb-2008, 12:29   #3 (permalink)
Valentinoo ha deshabilitado el karma
 
Fecha de Ingreso: abril-2007
Mensajes: 23
Re: Duda SimpleXML

Muchas Gracias por contestar.

He probado tu codigo y no me funciona. Puede que SimpleXML no sepa interpretar los namespace
Valentinoo está desconectado   Responder Citando
Antiguo 22-feb-2008, 12:43   #4 (permalink)
Moderador
GatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy pronto
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: Queretaro, Mexico
Mensajes: 11.600
Re: Duda SimpleXML

Mmm leyendo mas a fondo prueba esto:
Código PHP:
$book $xml->children"book" );
$title $book->children"title" );
echo 
$title
Saludos.
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 22-feb-2008, 13:44   #5 (permalink)
Valentinoo ha deshabilitado el karma
 
Fecha de Ingreso: abril-2007
Mensajes: 23
Re: Duda SimpleXML

Sigue sin funcionar. El error que me da es el siguiente:

Warning: main() [function.main]: Node no longer exists in C:\wamp\www\simple_xml.php on line

La linea 12 es donde tengo echo $title;
Valentinoo está desconectado   Responder Citando
Antiguo 22-feb-2008, 14:22   #6 (permalink)
Moderador
GatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy pronto
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: Queretaro, Mexico
Mensajes: 11.600
Re: Duda SimpleXML

Prueba usar var_dump( $title ); a ver que metodos tiene el nodo.

Saludos.
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 22-feb-2008, 14:29   #7 (permalink)
Valentinoo ha deshabilitado el karma
 
Fecha de Ingreso: abril-2007
Mensajes: 23
Re: Duda SimpleXML

Al hace el var_dump me devuelve lo siguiente:

Warning: var_dump() [function.var-dump]: Node no longer exists in C:\wamp\www\simple_xml.php on line 13
object(SimpleXMLElement)#3 (0) { }
Valentinoo está desconectado   Responder Citando
Antiguo 22-feb-2008, 14:32   #8 (permalink)
Moderador
GatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy pronto
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: Queretaro, Mexico
Mensajes: 11.600
Re: Duda SimpleXML

Mmm prueba hacer un var_dump a $book a ver si te devuelve el dato correcto.

Saludos.
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 22-feb-2008, 14:58   #9 (permalink)
Valentinoo ha deshabilitado el karma
 
Fecha de Ingreso: abril-2007
Mensajes: 23
Re: Duda SimpleXML

Al hacer el var_dump($book) el resultado es:

object(SimpleXMLElement)#2 (0) { }
Valentinoo está desconectado   Responder Citando
Antiguo 22-feb-2008, 15:27   #10 (permalink)
Moderador
GatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy pronto
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: Queretaro, Mexico
Mensajes: 11.600
Re: Duda SimpleXML

Edito:

Con este código me deja accesar al titulo:
Código PHP:
<?php

$xml 
"<?xml version='1.0'?>
<root>
<ns:book xmlns:ns=\"http://quickstart.samples/xsd\">
<ns:title>Titulo</ns:title>
</ns:book>
<title>titlea</title>
</root>"
;

$xml simplexml_load_string$xml );
$ns $xml->getNamespacestrue );
$xml->registerXPathNamespace('c'$ns['ns']);
$title $xml->xpath('//c:title');
echo 
$title[0];
?>
Saludos.
__________________
Blog Web

Última edición por GatorV; 22-feb-2008 a las 15:34.
GatorV está desconectado   Responder Citando
Antiguo 22-feb-2008, 16:21   #11 (permalink)
Valentinoo ha deshabilitado el karma
 
Fecha de Ingreso: abril-2007
Mensajes: 23
Re: Duda SimpleXML

Impresionante. Es lo que necesitaba.

Muchisimas Gracias,

Valentinoo
Valentinoo está desconectado   Responder Citando
Antiguo 25-mar-2008, 21:00   #12 (permalink)
tuadmin ha deshabilitado el karma
 
Fecha de Ingreso: abril-2006
Mensajes: 9
Idea Re: Duda SimpleXML

Cita:
Iniciado por GatorV Ver Mensaje
Mmm leyendo mas a fondo prueba esto:
Código PHP:
$book $xml->children"book" );
$title $book->children"title" );
echo 
$title
Saludos.
eso esta ams o menos bien pero en la funcion children tienes que poner lo que esta en el ns de su xml xmlns:ns="http://quickstart.samples/xsd"

osea segun lo que lei y vaya que lei bastatnte sobre xml y de se los recomiendo es que el namespaces es un identificador
<ns:book xmlns:ns=\"http://quickstart.samples/xsd\">
donde esta con engro le indicas que el identificador de ns es igual a "http://quickstart.samples/xsd" puede contener cualquier nombre no necesariamente un sitio web peude contener tu nombre o como yo lo estoy haciendo una descripcion de esa parte

ahora en php para reconocer ese identificador necesariamente se utiliza children por no se que ams utilizar

el codigo quedaria en el siguiente modo
<?php

$xml = "<?xml version='1.0'?>
<root>
<ns:book xmlns:ns="http://quickstart.samples/xsd">
<ns:title>Titulo</ns:title>
</ns:book>
<title>titlea</title>
</root>";

$xml = simplexml_load_string( $xml );
$xml_book = $xml->children('http://quickstart.samples/xsd');
echo $xml_book->title;

?>

eso seria la solucion para los que bscuan leer los xml que estan estructurados de esa manera


bye espero les aya servido
tuadmin está desconectado   Responder Citando
Respuesta
Calificación: Calificación de Tema: 1 votos, 1,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 16:02.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93