Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Acceder a atributos XML

Estas en el tema de Acceder a atributos XML en el foro de PHP en Foros del Web. Buenas a todos! Tengo el siguiente código: Código: <?php $fichero = '<xml><bloque a="1" b="5"> <alt>1141.80</alt> <time>0000-00-00 00:00:00</time> <name><![CDATA[Bloque-1]]></name> <type>C</type> <extensions> <pru:pruebaextension xmlns:pru="http://www.aaa.com"> <pru:ext type="IMAGEN" subtype="0">bbbbb</pru:ext> ...
  #1 (permalink)  
Antiguo 23/07/2013, 14:05
 
Fecha de Ingreso: julio-2013
Ubicación: Madrid
Mensajes: 2
Antigüedad: 10 años, 9 meses
Puntos: 1
Acceder a atributos XML

Buenas a todos!

Tengo el siguiente código:
Código:
<?php

$fichero = '<xml><bloque a="1" b="5">
<alt>1141.80</alt>
<time>0000-00-00 00:00:00</time>
<name><![CDATA[Bloque-1]]></name>
<type>C</type>
<extensions>
<pru:pruebaextension xmlns:pru="http://www.aaa.com">
<pru:ext type="IMAGEN" subtype="0">bbbbb</pru:ext>
</pru:pruebaextension>
</extensions>
</bloque></xml>';

	$myXML = simplexml_load_string($fichero);

	// Extracción de datos
	foreach ($myXML->bloque as $xmlInfo) {
		$a = $xmlInfo['a'];
		$b = $xmlInfo['b'];
		$alt = $xmlInfo->alt;
		$time = $xmlInfo->time;
		$name = $xmlInfo->name;
		$type = $xmlInfo->type;
		
		echo 'Bloque:<br>';
		echo '&nbsp;&nbsp;&nbsp;&nbsp; a: '.$a.', b: '.$b.'<br>';
		echo '&nbsp;&nbsp;&nbsp;&nbsp; alt: '.$alt.'<br>';
		echo '&nbsp;&nbsp;&nbsp;&nbsp; time: '.$time.'<br>';
		echo '&nbsp;&nbsp;&nbsp;&nbsp; name: '.$name.'<br>';
		echo '&nbsp;&nbsp;&nbsp;&nbsp; type: '.$type.'<br>';
		echo '<br>';
	};

?>
EL resultado de la ejecución es:

Código:
Bloque:
     a: 1, b: 5
     alt: 1141.80
     time: 0000-00-00 00:00:00
     name: Bloque-1
     type: C
Bien, hasta aquí todo correcto. El problema lo tengo al intentar acceder a los atributos que tiene ':', por ejemplo en 'pru:ext' quiero acceder a 'type' pero me es imposible, lo he intentado con varios métodos y no he podido.

¿Alguna idea?

Saludos!!
  #2 (permalink)  
Antiguo 23/07/2013, 14:11
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Acceder a atributos XML

Se llaman NAMESPACE... invesitga: SimpleXML Namespace
__________________
Salu2!
  #3 (permalink)  
Antiguo 24/07/2013, 03:20
 
Fecha de Ingreso: julio-2013
Ubicación: Madrid
Mensajes: 2
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Acceder a atributos XML

Muchas gracias!

Busqué y lo solucioné de esta manera:

Código:
$extType = $xmlInfo->extensions->children('http://http://www.aaa.com')->pruebaextension->ext->attributes()->type;
Saludos!!

Etiquetas: simplexml, xml
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 23:47.