XML - Leer XML con namespace padre con PHP

 
Vista:

Leer XML con namespace padre con PHP

Publicado por Alexis (3 intervenciones) el 14/06/2017 17:37:15
Tengo un pequeño problema con un XML el cual tiene al inicio namespace, puedo obtener los namespaces pero no logro obtener la informacion de los nodos hijos AYUDA!

Les dejo la informacion del xml que quiero leer

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:obtenerDatosIdArticuloResponse xmlns:ns2="http://dcm.com.mx.ServidorWS/">
         <Articulo>
            <descripcion>Descripcion de producto a vender</descripcion>
            <descuento>10</descuento>
            <disponible>8</disponible>
            <esPromocion>Si</esPromocion>
            <fechaFinPromocion/>
            <fechaIniPromocion/>
            <moneda>PESOS</moneda>
            <noArticulo>1234</noArticulo>
            <noParteFabricante>SERIE100</noParteFabricante>
            <precioFinal>2483.88</precioFinal>
            <precioLista>3088.51</precioLista>
            <tipoCambio>18.26</tipoCambio>
         </Articulo>
      </ns2:obtenerDatosIdArticuloResponse>
   </S:Body>
</S:Envelope>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Leer XML con namespace padre con PHP

Publicado por Alexis (3 intervenciones) el 15/06/2017 16:20:14
Tengo un problema al querer entrar al nodo <Articulo> al entrar me devuelve un NULL

accedo a los name space
1
2
3
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:obtenerDatosIdArticuloResponse xmlns:ns2="http://dcm.com.mx.ServidorWS/">

Pero a <Articulo> no
1
2
3
4
5
<Articulo>
            <descripcion>Descripcion de producto a vender</descripcion>
            <descuento>10</descuento>
//---
</Articulo>

Comparto algo de mi codigo, siento que me falta algo...



1
2
3
4
5
6
7
8
9
10
//request.xml contiene el xml que deseo leer que esta arriba
$xml=simplexml_load_file('request.xml');
$namespaces = $xml->getNameSpaces(true);
var_dump($namespaces); //solo para ver los namespace
$data=$xml->children($namespaces['S'])->children($namespaces['ns2']);
var_dump ($data); //solo para saber en cual namespace estoy
foreach($data as $item){
    var_dump($item->Articulo->descripcion);
    var_dump($item->Articulo->descuento);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Leer XML con namespace padre con PHP

Publicado por Alexis (3 intervenciones) el 15/06/2017 16:21:13
Tengo un problema al querer entrar al nodo <Articulo> al entrar me devuelve un NULL

accedo a los name space
1
2
3
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:obtenerDatosIdArticuloResponse xmlns:ns2="http://dcm.com.mx.ServidorWS/">

Pero a <Articulo> no
1
2
3
4
5
<Articulo>
            <descripcion>Descripcion de producto a vender</descripcion>
            <descuento>10</descuento>
//---
</Articulo>

Comparto algo de mi codigo, siento que me falta algo...



1
2
3
4
5
6
7
8
9
10
//request.xml contiene el xml que deseo leer que esta arriba
$xml=simplexml_load_file('request.xml');
$namespaces = $xml->getNameSpaces(true);
var_dump($namespaces); //solo para ver los namespace
$data=$xml->children($namespaces['S'])->children($namespaces['ns2']);
var_dump ($data); //solo para saber en cual namespace estoy
foreach($data as $item){
    var_dump($item->Articulo->descripcion);
    var_dump($item->Articulo->descuento);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar