Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

consultar un atributo de xml

Estas en el tema de consultar un atributo de xml en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, tengo un fichero en xml y quiero cosultar el valor de un atributo, pero no lo consigo. Se hacerlo si las etiquetas no tienen ...
  #1 (permalink)  
Antiguo 28/11/2007, 06:51
 
Fecha de Ingreso: noviembre-2007
Mensajes: 2
Antigüedad: 16 años, 5 meses
Puntos: 0
Pregunta consultar un atributo de xml

Hola, tengo un fichero en xml y quiero cosultar el valor de un atributo, pero no lo consigo.
Se hacerlo si las etiquetas no tienen el namespace, pero en el fichero que tengo que tratar lo tienen todas las etiquetas. Os pongo un trocito del documento:

<?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
>
<owl:Ontology rdf:about=""/>
<owl:Class rdf:ID="Insectivora">
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
>Insectivora</rdfs:comment>
</owl:Class>
</rdf:RDF>

Consigo acceder al elemento rdf:ID, pero no consigo mostrarlo.

$xml = simplexml_load_file('xml_little.owl');
$res2 = $xml->xpath("/rdf:RDF/owl:Class/@rdf:ID");
foreach ($res2 as $key => $value)
{
echo "<p> -".$key." ".$value."</p>";
}

El número de elementos del array $res2 es correcto, pero no saca nada en la variable $value

Un saludo y muchas gracias
  #2 (permalink)  
Antiguo 28/11/2007, 08:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: consultar un atributo de xml

Hola odigele1,

Prueba hacer un var_dump( $res2 ); para que veas que elementos contiene tu array.

Saludos.
  #3 (permalink)  
Antiguo 29/11/2007, 03:06
 
Fecha de Ingreso: noviembre-2007
Mensajes: 2
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: consultar un atributo de xml

Cita:
Iniciado por GatorV Ver Mensaje
Hola odigele1,

Prueba hacer un var_dump( $res2 ); para que veas que elementos contiene tu array.

Saludos.
He hecho el var_dump y este es el resultado:

var_dump: array(1) { [0]=> object(SimpleXMLElement)#3 (0) { } }

Ahora veo lo que me imaginaba que pasaba, y es que no se coge el valor del atributo.

$res2 = $xml->xpath("/rdf:RDF/owl:Class/@rdf:ID"); ==> se supone que está bien pq si no, el array estaría vacío.

El caso es que si quito los namespace y sus definiciones en la etiqueta rdf si funciona(owl:, rdf: ...). Toda la culpa la tienen ellos. No entiendo porque no coge el valor del atributo

Estoy desquiciado.

Un saludo, y gracias


gracias GatorV

Última edición por odigele1; 29/11/2007 a las 04:01
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:22.