Foros del Web » Programando para Internet » PHP »

Leer parametros y value de XML

Estas en el tema de Leer parametros y value de XML en el foro de PHP en Foros del Web. Hola, Estimados tengo el siguiente problema, debo rescatar los parametros de un xml no muy comun: Código: <?xml version="1.0" encoding="utf-8"?> <simsrv version="1.0" msg_type="response"> <header> <param ...
  #1 (permalink)  
Antiguo 04/05/2016, 14:21
Avatar de rigo_5834  
Fecha de Ingreso: julio-2009
Mensajes: 99
Antigüedad: 14 años, 9 meses
Puntos: 8
Leer parametros y value de XML

Hola,

Estimados tengo el siguiente problema, debo rescatar los parametros de un xml no muy comun:

Código:
<?xml version="1.0" encoding="utf-8"?>
<simsrv version="1.0" msg_type="response">
    <header>
        <param name="SN" value="0" />
        <param name="Domain" value="Default" />
        <param name="User" value="admin" />
        <param name="Cmd" value="SendSpec" />
        <param name="Retries" value="0" />
        <param name="Timeout" value="5000" />
        <param name="Timestamp" value="NA" />
        <param name="AuthInfo" value="NA" />
        <param name="ErrorCode" value="ERR_FAILURE" />
        <param name="ErrorInfo" value="Inner Failure" />
        <param name="ProcessTime" value="1" />
    </header>

    <SendSpec>
        <param name="TaskId" value="10000" />
        <param name="DeviceId" value="13" />
        <param name="PortType" value="GWP" />
        <param name="PortNo" value="0" />
        <param name="Number" value="9999999" />
        <param name="Encode" value="UNICODE" />
        <param name="Content" value="HI" />
        <param name="MaxRetries" value="0" />
        <param name="ErrorCode" value="ERR_FAILURE" />
        <param name="ErrorInfo" value="No SIM Object" />
    </SendSpec>
</simsrv>
Debo ingresar por ejemplo a la etiqueta SendSpec y obtener alguno de los parametros y valores, intente con simplexml_load_file pero no se como ingresar a los parametros.

Agradeceria mucho alguna orientación sobre esto

Saludos!!
  #2 (permalink)  
Antiguo 04/05/2016, 14:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Leer parametros y value de XML

¿Ya consultaste el manual para entender cómo se usa dicha librería?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 04/05/2016, 14:44
Avatar de rigo_5834  
Fecha de Ingreso: julio-2009
Mensajes: 99
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: Leer parametros y value de XML

Hola xD

Con la libreria no hay problema, solamente necesito leer desde php los parametros de una etiqueta.

Saludos
  #4 (permalink)  
Antiguo 04/05/2016, 15:07
 
Fecha de Ingreso: marzo-2016
Ubicación: México
Mensajes: 58
Antigüedad: 8 años, 1 mes
Puntos: 3
Respuesta: Leer parametros y value de XML

te dejo un articulo que me ayudo, ahi vas a encontrar lo que necesitas
Link
  #5 (permalink)  
Antiguo 06/05/2016, 09:33
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 3 meses
Puntos: 11
Respuesta: Leer parametros y value de XML

Tienes que usar xpath y simple xml:

Código PHP:
Ver original
  1. $xml="";
  2. try{
  3.     $xml = new SimpleXMLElement($strContenidoXML);
  4. }catch(Exception $e){
  5.        echo "Error al leer el xml";
  6. }
  7. $noNodos =count( $xml->xpath("/simsrv/header/param"));
  8. for($i=1;$i<=$noNodos;$i++){
  9.     $strName=$xml->xpath("/simsrv/header/param[".$i."]/@name");
  10.     $nombre="".trim($strName[0]->name);
  11.     $strValue=$xml->xpath("/simsrv/header/param[".$i."]/@value");
  12.     $valor="".trim($strValue[0]->value);
  13.     $header[$nombre] =$valor;
  14. }
  15.  
  16. $noNodosSpec =count( $xml->xpath("/simsrv/SendSpec/param"));
  17. for($i=1;$i<=$noNodosSpec;$i++){
  18.     $strNameSpec=$xml->xpath("/simsrv/SendSpec/param[".$i."]/@name");
  19.     $nombreSpec="".trim($strNameSpec[0]->name);
  20.     $valueSpec=$xml->xpath("/simsrv/SendSpec/param[".$i."]/@value");
  21.     $valorSpec="".trim($valueSpec[0]->value);
  22.     $SendSpec[$nombreSpec] =$valorSpec;
  23. }

Tus datos quedan en los arreglos $SendSpec y $header. Nota: este código podría tener errores de sintaxis ya que no lo probe.
Espero te sirva
Saludos

Etiquetas: parametros, 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:04.