Hola a todos , tengo un problema , no puedo hacer que se pueda leer un nodo de este xml , siempre lee el mismo valor de un nodo hijo
Ejemplo
Cita:
<detalles>
<detalle>
<descripcion>BIG COLA PET NO RETORNABLE 2250 ml 6 pack</descripcion>
<detallesAdicionales>
<detAdicional nombre="dato" valor="2.38"/>
<detAdicional nombre="dato" valor="2.64"/>
<detAdicional nombre="dato" valor="0.60"/>
</detallesAdicionales>
<impuestos>
<impuesto>
<codigo>3</codigo>
<codigoPorcentaje>3051</codigoPorcentaje>
<tarifa>10.00</tarifa>
<baseImponible>23.81</baseImponible>
<valor>2.38</valor>
</impuesto>
<impuesto>
<codigo>2</codigo>
<codigoPorcentaje>2</codigoPorcentaje>
<tarifa>12</tarifa>
<baseImponible>22.01</baseImponible>
<valor>2.64</valor>
</impuesto>
</impuestos>
</detalle>
<detalle>
<descripcion>COLA PET RETORNABLE 2250 ml 6 pack</descripcion>
<detallesAdicionales>
<detAdicional nombre="dato" valor="2.38"/>
<detAdicional nombre="dato" valor="2.64"/>
<detAdicional nombre="dato" valor="0.60"/>
</detallesAdicionales>
<impuestos>
<impuesto>
<codigo>3</codigo>
<codigoPorcentaje>3051</codigoPorcentaje>
<tarifa>15.00</tarifa>
<baseImponible>23.81</baseImponible>
<valor>2.38</valor>
</impuesto>
<impuesto>
<codigo>2</codigo>
<codigoPorcentaje>2</codigoPorcentaje>
<tarifa>16</tarifa>
<baseImponible>122.01</baseImponible>
<valor>12.64</valor>
</impuesto>
</impuestos>
</detalle>
</detalles>
|
Lee la BIG COLA PET NO RETORNABLE 2250 ml 6 pack y los impuestos (primer parrafo) , luego lee el segundo bloque COLA PET RETORNABLE 2250 ml 6 pack
y me vuelve a leer el valor del primer impuesto cuando deberia leer el impuesto que correspone al producto COLA PET RETORNABLE 2250 ml 6 pack
Espero me entiendan gracias, seguro sera algo sencillo pero no he podido
Código Delphi
[-]
for i := 0 to MainNode.ChildNodes['detalles'].ChildNodes.Count-1 do
Begin
CustomerNode := MainNode.ChildNodes['detalles'].ChildNodes[i];
showmessage(CustomerNode.ChildNodes['descripcion'].text);
for j := 0 to MainNode.ChildNodes['detalles'].ChildNodes['detalle'].ChildNodes['impuestos'].ChildNodes.Count-1 do
Begin
CustomerNode1:=MainNode.ChildNodes['detalles'].ChildNodes['detalle'].ChildNodes['impuestos'].ChildNodes[j];
showmessage(CustomerNode1.ChildNodes['baseImponible'].text);
End;
End;
Adjunto xml
como pueden ver el sistema pasa siempre por el nodo descripcion , pero dentro de ese nodo existe otro nodo , lo lee pero cuando lee el siguiente registro el nodo segundo (customedNode1) no avanza al siguiente registro y se queda siempre leyendo el mismo valor