Foros del Web » Programando para Internet » PHP »

Interpretar UN XML con PHP y SimpleXML

Estas en el tema de Interpretar UN XML con PHP y SimpleXML en el foro de PHP en Foros del Web. Saludos amigos , el dia de hoy en mi job estoy interpretando o en otras palabras, dandole formato a un documento XML utilizando PHP y ...
  #1 (permalink)  
Antiguo 01/09/2009, 12:35
Avatar de GXT2  
Fecha de Ingreso: junio-2009
Ubicación: Fort Lauderdale, FL
Mensajes: 152
Antigüedad: 15 años, 5 meses
Puntos: 0
Interpretar UN XML con PHP y SimpleXML

Saludos amigos , el dia de hoy en mi job estoy interpretando o en otras palabras, dandole formato a un documento XML utilizando PHP y SimpleXML que no es mas que una extencion que permite convertir un xml a objeto y posterirormente manipularlo.

Bueno los recursos con los que cuento es la pagina XML
que la pueden checar aqui :
kmpfurniture.com/feeds/kmpfurniture_catalog.xml

Pongo el XML aqui para que lo vean :

Cita:

<catalog>
<product>

<id>48</id>
<title>Boltrona Single Seater - Leather</title>

<description>
Texto de description
</description>

<price> 1185 </price>

<thumbimg>
kmpfurniture. com / admin / uploads/BoltronasingleseaterleatherThumbnail.jpg
</thumbimg>

<collection>Fire</collection>

</product>
</catalog>

Como lo interpreto con SimpleXML es de la siguiente manera :


Cita:
<?php
$xml = simplexml_load_file("kmpfurniture.com/feeds/kmpfurniture_catalog2.xml");

foreach($xml->product as $product)
{
printf("Title: %s\n", $product->title); echo "<br>";
echo "<img src='";
printf($product->thumbimg);
echo "' width='170px' height='139px'/><br/>" ;
printf("Price: $ %s\n ", $product->price); echo "<br>";
printf("Collection: $ %s\n ", $product->collection); echo "<br>";
echo "-------------------------------------------------------<br/>";
}

?>


Obtenemos el siguiete resultado :

Title : Boltrona Single Seater - Leather
{Aqui se popula la foto}
Price: $123.00
Collection: Fire

Title : Boltrona Single Seater - Leather
{Aqui se popula la foto}
Price: $123.00
Collection: Fire

[/QUOTE]

Lo que me gustari es solo popular los productos de la coleccion FIRE ,
porque en el XML hay 2 colecciones FIRE y EARTH,


?Como condiciono para solo requerir los productos que sean solo FIRE

Agradezco por la ayuda ... cuando termine el codigo paso por aqui denuevo a postear
toda la informacion recibida para ayudar al proximo que tenga el mismo reto...
Paz y muchas gracias

Última edición por GXT2; 01/09/2009 a las 12:48 Razón: Lo puse para ver si me aceptaba todo el codigo poruqe la otra vez escribi todo y me dijo el sistema uqe por que era nuevo nob
  #2 (permalink)  
Antiguo 01/09/2009, 18:32
Avatar de iandrade  
Fecha de Ingreso: septiembre-2006
Ubicación: Xalapa, Veracruz, MÉXICO.
Mensajes: 171
Antigüedad: 18 años, 1 mes
Puntos: 6
Respuesta: Interpretar UN XML con PHP y SimpleXML

Con un simple if se soluciona, pero debes hacer un type casting

if((string)$product->thumbimg == "Fire"){
//Aqui tu codigo
}
__________________
No todo lo que se hace en segundo plano es AJAX
  #3 (permalink)  
Antiguo 02/09/2009, 09:18
Avatar de GXT2  
Fecha de Ingreso: junio-2009
Ubicación: Fort Lauderdale, FL
Mensajes: 152
Antigüedad: 15 años, 5 meses
Puntos: 0
Mensaje Respuesta: Interpretar UN XML con PHP y SimpleXML

Mil gracias iandrade eso era exactamente lo que andaba buscando
y bueno dejo mi codigo que termine gracias a tu ayuda .. ahi est apara los
que tengan el mismo reto...

Nota: Interesante es que el documento xml esta en una pagina
y la interpretacion de ese doc xml la monte en otro server, dando
fe de la versatilidad del XML .. fasinante verdad?

Para que vean el codigo correr esta en www .olympus-tours.com/kmpfurniture_catalog.php <-- ojo pegar la direccion web sin espacios

Cita:
<body>

<?php
$xml = simplexml_load_file("www .kmpfurniture.com/feeds/kmpfurniture_catalog2.xml"); // llamamos al documento xml que puede estar en cualquier direccion web?>
<table border="0" >
<tr>
<?
$cont=0;
foreach($xml->product as $product)
{ //foreach ?>
<?
if ($cont % 5 == 0) //Este es un break para hacer el salto en la tabla cada 5 productos
{echo "<tr>";} // imprimo un tr cuando el $con del producto es multiplo de 5
//if($cont==(string)$product->collection == "Fire"){ echo"<tr>" }
if((string)$product->collection == "Fire") // pregunto si ese producto es de la coleccion Fire
{ //ifB ?>
<td align="center" style="padding:3px 3px 3px 3px" valign="top">
<table border="1" width="180px">
<tr>
<th>
<?
printf("%s\n", $product->title); echo "<br>";
?>
</th>
</tr>
<tr>
<th>
<?
echo "<img src='";
printf($product->thumbimg);
echo "' width='170px' height='139px'/><br/>" ;
?>
</th>
</tr>
<tr>
<th>
<form target="paypal" action="www .paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="business" value="66UQTPVMTW3D4">
<input type="hidden" name="lc" value="US">

<input type="hidden" name="item_name" value='<? printf("%s\n", $product->title);?>'>
<input type="hidden" name="item_number" value='<? printf("%s\n", $product->id);?>'>
<input type="hidden" name="amount" value=' <? printf("%s\n", $product->price);?>'>

<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="button_subtype" value="products">
<input type="hidden" name="add" value="1">
<input type="hidden" name="bn" value="PP-ShopCartBF:btn_cart_SM.gif:NonHosted">
<input type="image" src="www .paypal.com/en_US/i/btn/btn_cart_SM.gif"
border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="www .paypal.com/es_XC/i/scr/pixel.gif" width="1" height="1">
</form>
</th>
<tr>
<th>
<?
printf("Price: $ %s\n ", $product->price);
?>
</th>
<tr>
<th>
<?
printf("Collection: %s\n ", $product->collection);
$cont = $cont+1;
?>
</th>
</tr>
</table>
<?
}//ifB
?>
</td>
<?
} //foreach ?>
</tr>
</table>
</body>
Interesante muy interesante.
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 21:45.