Parsear con PHP Simple HTML DOM

Iniciado por multi-media asdfg, 15 Julio 2011, 15:00 PM

0 Miembros y 1 Visitante están viendo este tema.

multi-media asdfg

Hola a todos!!

Estoy usando PHP Simple HTML DOM para parsear un XML. El problema que tengo es que estoy parseando un xml que tiene varias etiquetas iguales, <pro>, lo que quiero es empezar a mostrar a partir de la cuarta etiqueta <pro>.

Pongo algo de mi código...

<?php  
include('simple_html_dom.php'); 
$html file_get_html('38024.xml');  


 foreach(
$html->find('pro') as $element4)     
echo 
'<td>' $element4->outertext  '%' '</td>'

        

?>


Alguna Solución ?

~ Yoya ~

Prueba asi:
Código (php) [Seleccionar]
<?php  
include('simple_html_dom.php'); 
$html file_get_html('38024.xml');  


$i 0;
 foreach(
$html->find('pro') as $element4){  

$i+=1;

if(
$i <= 3) { continue; }
echo 
'<td>' $element4->outertext  '%' '</td>'

}

?>


Yo preferiría utilizar el loop for...
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

multi-media asdfg

Si!! Muchas gracias ~ Yoya ~, funciona perfectamente!


Gracias!
Saludos!!

multi-media asdfg

#3
Hola de nuevo, tengo otra duda sobre el mismo tema...

Con el siguiente código PHP estoy intentando que el valor que recoge a la hora de parsear, muestre una cosa o la otra. El caso es que con texto no me funciona, pero con números si.

Código (php) [Seleccionar]
<?php 
   
foreach($html->find('vien') as $element7)   {  
       echo 
'<td>';
    echo $element7-> outertext ();

$element7 $element7->__toString(); 
$element7 intval($element7); 


if (
$element7=="S") {
    print 
'<img src="prueba.gif" title="" alt="" />';
} elseif (
$element7=="NE") {
    print 
"prueba";

 
}
echo 
'</td>';

?>


He probado varias cosas y no ha funcionado entre ellas ... los 3 iguales, el trum y nada...


~ Yoya ~

La razón porque funciona con numero es porque el valor de $element7 siempre sera un numero. Si mandas texto, el valor de la variable $element7 sera 0.

Código (php,7) [Seleccionar]
<?php 
   
foreach($html->find('vien') as $element7)   {  
       echo 
'<td>';
    echo $element7-> outertext ();
 
$element7 $element7->__toString(); 
$element7 intval($element7); 
 
 
if (
$element7=="S") {
    print 
'<img src="prueba.gif" title="" alt="" />';
} elseif (
$element7=="NE") {
    print 
"prueba";

 
}
echo 
'</td>';
 


Lo que puedes hacer es usar dos variables diferentes. La otra forma es quitar intval.

Un ejemplo para que entiendas mejor:
http://codepad.org/xP912tvT

Saludos, ya no podre contestar... Me voy de vacaciones!!!
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

multi-media asdfg

#5
He probado quitando el  intval e incluso a poner las 2 variables diferentes pero en ambos casos lo que hace es que solo aparece la primera opcion del if, que es la imagen, independientemente de si el resultado de la variable es S o NE.

Alguna Solución ??

Que lo pases bien en tus vacaciones ~ Yoya ~  ;)