Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/04/2012, 14:29
nilotrajano
 
Fecha de Ingreso: septiembre-2010
Mensajes: 66
Antigüedad: 13 años, 8 meses
Puntos: 2
¿como ejecutar un foreach condicionado para 2 xml?

Buen dia, sucede que necesito ejecutar un foreach condicionado de dos xml a la vez, no pongo mi funcion php ni mis xml porque son muy largos, para un ejemplo seria algo asi:

Tengo dos XML

Código:
<?xml version="1.0" encoding="ISO-8859-1"?>  
<mensajes>  

    <mensaje>  
           <suma>1+1</suma>  
    </mensaje> 

    <mensaje>  
           <suma>2+2</suma>  
    </mensaje>

    <mensaje>  
           <suma>3+3</suma>  
    </mensaje>

</mensajes>
Código:
<?xml version="1.0" encoding="ISO-8859-1"?>  
<campos>  

    <campo>  
           <resultado>2</resultado>  
    </campo> 

    <campo>  
           <resultado>3</resultado>  
    </campo>

    <campo>  
           <resultado>6</resultado>  
    </campo>

</campos>
Y solicito un foreach por medio de php de la siguiente manera:

Código PHP:
<?PHP

$xml 
simplexml_load_file("library.xml");

$res $xml->xpath("/campos/campo");

foreach (
$res as $art){

echo 
$art->resultado;}

?>
Y por ende me muestra 2 3 6, pero ahora lo que necesito es condicionar esos resultados, solo cuando suma sea igual a resultado, he tratado lo siguiente:

Código PHP:
<?PHP

$xml2 
simplexml_load_file("library2.xml");

$xml simplexml_load_file("library.xml");


$res2 $xml->xpath("/mensajes/mensaje");

foreach (
$res2 as $art2){

$suma $art2->suma;


$res $xml->xpath("/campos/campo[resultado='$suma']");

foreach (
$res as $art){

echo 
$art->resultado;}

}

?>
Pero no muestra nada, la idea seria que mostrara solo 2 y 6, ya que son los únicos que cumplirían con la condición. Unir los xml me resulta imposible ya que uno de esos es de un API externa a mi web, la otra seria hacer solo un foreach para ambos xml y asi evito hacer tantas peticiones, pero no sabría como hacerlo.

Muchas gracias.