PHP ¿Cómo leer el valor del nodo secundario XML en una cadena usando PHP?

Tengo una Cadena que obtiene su valor dinámicamente de otro servidor. El valor de la cadena es

$string1 = '<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.microsoft.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <AuthenticateUserResponse xmlns="http://microsoft.com/xml/namespace/2012/04">
      <Authenticator>AE1001</Authenticator>
    </AuthenticateUserResponse>
  </soap:Body>
</soap:Envelope>';

Mi pregunta es, generalmente usamos *$xml = simplexml_load_file("test1.xml");* para cargar archivos XML, pero aquí en mi requerimiento es un Cordón, ¿cómo puedo leer este valor de cadena y extraer el nodo secundario y su valor? Ejemplo:

<Authenticator> and its value "AE1001" ?

¿Hay alguna manera de poner esto en Array? para que sea fácil para mí imprimir su valor de nodo?

preguntado el 22 de mayo de 12 a las 18:05

3 Respuestas

También aprende DOMDocumento y XPath. Realmente vale la pena el tiempo.

$doc = new DOMDocument;
$doc->loadXML($string1);

echo $doc->getElementsByTagName('Authenticator')->item(0)->nodeValue; // AE1001

contestado el 22 de mayo de 12 a las 18:05

¡Guau! Esto es exactamente lo que estaba buscando, muchas gracias amigo! es corto y preciso, ¡ahorra mucho tiempo! :) Revisará los manuales como usted ha sugerido. Gracias :) - Yo 4U

http://www.php.net/manual/de/function.simplexml-load-string.php

http://php.net/manual/de/book.simplexml.php

Esto lo ayudaría a encontrar una solución para su problema y analizar su xml.

contestado el 22 de mayo de 12 a las 18:05

simplexml_load_string

DomDocumento::loadXML

ambos te ayudarían a lograr tu tarea

contestado el 22 de mayo de 12 a las 18:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.