03/01/2011, 13:10
|
| | Fecha de Ingreso: julio-2009
Mensajes: 3
Antigüedad: 15 años, 4 meses Puntos: 0 | |
Leer atributos de dos nodos con php y xml Mi problema es es que quiero leer dos nodos pero si pongo un foreach dentro de otro me duplica el resultado .. este es mi codigo A cada concepto le pertenece una observación espero me puedar ayudar gracias
xml:
<?xml version="1.0" encoding="iso-8859-1"?>
<Conceptos>
<Concepto cantidad="1" descripcion="FLETES" valorUnitario="9891.00" importe="9891.00"/>
<Concepto cantidad="1" descripcion="FLETES" valorUnitario="9891.00" importe="9891.00"/>
<Concepto cantidad="1" descripcion="FLETES" valorUnitario="9891.00" importe="9891.00"/>
<Concepto cantidad="1" descripcion="FLETES" valorUnitario="9891.00" importe="9891.00"/>
<Concepto cantidad="1" descripcion="MANIOBRAS" valorUnitario="9200.00" importe="9200.00"/>
</Conceptos>
<MGW10010 cObserva01="RABON 1 CV18644-18661-18694-18687-18720-18721-18723-18615
" cTextoEx01="" cTextoEx02="" cTextoEx03=""></MGW10010>
<MGW10010 cObserva01="RABON 2 CV18643-18662-18697-18722-18725" cTextoEx01="" cTextoEx02="" cTextoEx03=""></MGW10010>
<MGW10010 cObserva01="RABON 3 CV-18643-18663-18645-18698-18726-18615" cTextoEx01="" cTextoEx02="" cTextoEx03=""></MGW10010>
<MGW10010 cObserva01="RABON 4 CV18664-18695-18718-18724" cTextoEx01="" cTextoEx02="" cTextoEx03=""></MGW10010>
<MGW10010 cObserva01="MANIOBRAS" cTextoEx01="" cTextoEx02="" cTextoEx03="">
$xdoc = new DomDocument;
$archivo="F0000000010.xml";
$xdoc->Load($archivo);
$params = $xdoc->getElementsByTagName('Concepto');
$params2 = $xdoc->getElementsByTagName('MGW10010');
foreach ($params as $param3){
$valor= $param3 -> getAttribute('cantidad').'<br>';
$valordos=$param3 -> getAttribute('descripcion').'<br>';
$valortres=$param3 -> getAttribute('valorUnitario').'<br>';
$valorcuatro=$param3 -> getAttribute('importe').'<br>';
echo $valor ."</br>";
echo $valordos ."</br>";
echo $valortres ."</br>";
echo $valorcuatro ."</br>";
foreach($params2 as $params3){
$valor2 = $params3 -> getAttribute('cObserva01');
echo $valor2 ."</br>";
}
} |