Título: Parsear XML con (.) y (:) en "tag names" usando simpleXml de PHP Publicado por: jdomgo3 en 10 Febrero 2014, 10:13 am Hola a todos,
llevo un par de días probando varias cosas pero no lo consigo, el caso es que hay información en la web sobre cómo parsear xml cuando este tiene dos puntos en los namespaces pero mi problema va un poco mas allá, este es un fragmento del xml (en realidad es un XMI, no un XML) que quiero parsear: Código
Necesito quedarme con el item virtualHostName que pertenece al nodo com.ibm.ejs.models.base.bindings.webappbnd:WebAppBinding y este nombre tiene puntos ( . ) y dos puntos ( : ), ¿alguna idea? Esto es lo último que he probado, sin éxito: Código
Un saludo y muchas gracias de antemano. Título: Re: Parsear XML con (.) y (:) en "tag names" usando simpleXml de PHP Publicado por: jdomgo3 en 10 Febrero 2014, 21:45 pm La parte de los dos puntos está "apañada" y digo apañada por que en realidad no uso un parseador para tratar este dato, si no que directamente elimino los dos puntos y con eso me funciona en aquellos nodos que contienen los dos puntos ( : ) y no contienen puntos ( . ), por ejemplo:
Código
Para parsear el namespace host:VirtualHost y obtener el valor de la propiedad name lo que hago es eliminar los dos puntos de la siguiente manera con la función preg_replace y luego parseo el contenido como string (no como archivo) con la función simplexml_load_string: Código
Siendo la salida... Código
Solo pongo esto por si alguno tiene el problema de parsear namespaces con dos puntos ( : ), pero no es la solución a mi problema, ya que sigo sin saber cómo tratar los namespaces con puntos ( . ) y haciendo el mismo proceso no meha funcionado :-(, a ver si a alguno de vosotros se os ocurre alguna idea mejor. Pongo otra vez el trozo de XML con el que quiero trabajar: Código
Un saludo y gracias de antemano. |