Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Buscar una palabra dentro de un foreach al leer un xml.

Estas en el tema de Buscar una palabra dentro de un foreach al leer un xml. en el foro de PHP en Foros del Web. Hola amigos, espero me puedan ayudar, tengo el siguiente inconveniente que no puedo arreglar, estoy leyendo un archivo xml con simplexml y haciendo un foreach ...
  #1 (permalink)  
Antiguo 16/05/2014, 14:18
 
Fecha de Ingreso: marzo-2007
Mensajes: 31
Antigüedad: 17 años, 8 meses
Puntos: 0
Pregunta Buscar una palabra dentro de un foreach al leer un xml.

Hola amigos, espero me puedan ayudar, tengo el siguiente inconveniente que no puedo arreglar, estoy leyendo un archivo xml con simplexml y haciendo un foreach para recoger todos los nodos que necesito. Mi problema esta que necesito hacer un if despues de recorrerlos, lo que hago es una web de viajes y a mi me arroja la disponibilidad por noche y es muy variable, al momento de generar un rango de fechas si una noche no es ta disponible necesito meter un if para que no de opcion de reservar, pero no puedo hacerlo al recorrerlo con un foreach porque solo me toma el primer nodo y los demas el if no me los detecta.

Alguien de ud me puede ayudar solo a saber como buscar y detectar si hay cierto valor y meter un if?

Gracias a todos
  #2 (permalink)  
Antiguo 16/05/2014, 14:28
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Buscar una palabra dentro de un foreach al leer un xml.

y tu codigo php ? y el XML para ver la estructura ?
__________________
Salu2!
  #3 (permalink)  
Antiguo 16/05/2014, 17:15
 
Fecha de Ingreso: marzo-2007
Mensajes: 31
Antigüedad: 17 años, 8 meses
Puntos: 0
Pregunta Respuesta: Buscar una palabra dentro de un foreach al leer un xml.

Hola Italico76, gracias por tu respuesta y mira asi es como lo hago:

Código PHP:
<?php
$hotelquoteratesxml 
simplexml_load_file ('http://testxml.e-tsw.com/AffiliateService/AffiliateService.svc/restful/GetQuoteHotelRate?a=TestQA&ip=201.147.113.232&c=pe&l=esp&h=5&sd=20140801&ed=20140804&r=1&r1a=1&r1k=0&r1k1a=0&r1k2a=0&r1k3a=0&r2a=0&r2k=0&r2k1a=0&r2k2a=0&r2k3a=0&r3a=0&r3k=0&r3k1a=0&r3k2a=0&r3k3a=0&r4a=0&r4k=0&r4k1a=0&r4k2a=0&r4k3a=0&r5a=0&r5k=0&r5k1a=0&r5k2a=0&r5k3a=0&hash=');

foreach (
$hotelquoteratesxml->Hotel->Rooms->Room->NightsDetail->NightDetail as $dispo){        
                
$disponibilidad $dispo->Available;

echo 
$disponibilidad;    
};
?>
Con eso obtengo la disponibilidad de cada noche segun el rango de fechas que metamos en la url del xml (sd=20140801&ed=20140804), el detalle es que puede pasar que 1 noche este como NA que es no disponible y las demas como AV que es disponible, lo que necesito es que despues de recorrer las noches detectar si hay un NA y poner un if o algo para que no me permita reservar.

Espero me puedan ayudar.

Gracias
  #4 (permalink)  
Antiguo 16/05/2014, 19:26
 
Fecha de Ingreso: marzo-2007
Mensajes: 31
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: Buscar una palabra dentro de un foreach al leer un xml.

Hola a todos, encontre la solucion yo solo y se las dejo por si a alguien le sirve:

Código PHP:
<?php

$fichero 
simplexml_load_file ('tu url del xml');

foreach (
$fichero->item as $item){
        
        
$item_1 $item->Node;
        
        
$conjunto ''.$item_1.'';        
}

if (
strpos($conjunto'lo que buscas') === false)
    {
$esta 'NO';}    
else{
$esta 'SI';}

echo 
'</br>Se encontro lo que buscas?:</br>';
echo 
$esta;

?>
Esto me sirvio para poder buscar un texto o palabra dentro de todo el recorrido del xml.

Saludos

Etiquetas: fecha, foreach, palabra, variable
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 07:10.