PHP - Extraer un nodo aleatorio de un XML con php

 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado su posición en 23 puestos en PHP (en relación al último mes)
Gráfica de PHP

Extraer un nodo aleatorio de un XML con php

Publicado por Fernando (3 intervenciones) el 01/09/2017 19:59:26
Buenas tardes, he estado buscando una solución a un problema que tengo, necesito extraer nodos de forma aleatoria de un XML ubicada en una URL con PHP, he logrado parsear con simpleXML pero no logro obtener resultados parecidos a la funcion que realiza rand() en mysql, no se si me explico.

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Extraer un nodo aleatorio de un XML con php

Publicado por kip (877 intervenciones) el 02/09/2017 04:14:47
Hola, este XML que tipo de nodos tiene ? es decir los nodos solo tienen un valor o tienen dentro otros nodos y esos mas nodos ? Comentanos con mas detalle...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 6
Ha aumentado su posición en 23 puestos en PHP (en relación al último mes)
Gráfica de PHP

Extraer un nodo aleatorio de un XML con php

Publicado por Fernando (3 intervenciones) el 02/09/2017 20:16:18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<articulos>
<item>
<id></id>
<clave></clave>
<imagen></imagen>
</item>
<item>
<id></id>
<clave></clave>
<imagen></imagen>
</item>
<item>
<id></id>
<clave></clave>
<imagen></imagen>
</item>
</articulos>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 2.325
Plata
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Extraer un nodo aleatorio de un XML con php

Publicado por kip (877 intervenciones) el 03/09/2017 20:53:22
Un metodo simple puede ser usando rand()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$xml = <<<XML
<?xml version='1.0' standalone='yes'?>
<articulos>
<item>
<id>1</id>
<clave>Clave de producto 1</clave>
<imagen></imagen>
</item>
<item>
<id>2</id>
<clave>Clave de producto 2</clave>
<imagen></imagen>
</item>
<item>
<id>3</id>
<clave>Clave de producto 3</clave>
<imagen></imagen>
</item>
</articulos>
XML;
 
$articulos = new SimpleXMLElement($xml);
 
$rand = rand(0, $articulos->item->count() - 1);
echo $articulos->item[$rand]->clave;

De esa forma obtendre la clave de algun item aleatorio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 6
Ha aumentado su posición en 23 puestos en PHP (en relación al último mes)
Gráfica de PHP

Extraer un nodo aleatorio de un XML con php

Publicado por Fernando (3 intervenciones) el 04/09/2017 02:24:27
Funciona muy bien, y si fuera con un bucle foreach como quedaría?? Me imagino que debe quedar dentro de la condición hasta donde entiendo es donde se recorre el array, intente con varias formas pero me marca error
Mi codigo es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
//Extraer el XML
$pc = simplexml_load_file($pc_1);
$i = 0;
 
 
 
foreach ($pc->item as $item) {
 
	$precio_format = number_format((float)$item->precio,2);
 
	echo "
	<div class=\"col-md-3 col-sm-6 col-xs-12\">
	<div class=\"productBox\">
		<div class=\"productImage hoverStyle\">
			<img src=\"$item->imagen\" width=\"263\" height=\"332\" alt=\"\">
 
			<div class=\"hoverBox\">
				<div class=\"hoverIcons\">
					<a href=\"producto_detalle.html\" class=\"eye hovicon\"><i class=\"fa fa-eye\"></i></a>
					<a href=\"#\" class=\"heart hovicon\"><i class=\"fa fa-heart-o\"></i></a>
				</div><!-- ( HOVER ICONS END ) -->
				<a href=\"view-cart.html\" class=\"cartBTN2\">Agregar al carrito</a>
			</div><!-- ( HOVER BOX END ) -->
		</div><!-- ( PRODUCT IMAGE END ) -->
		<div class=\"productDesc\">
			<span class=\"product-title\"><a href=\"producto_detalle.html\">$item->clave</a></span>
            <p>$item->marca</p>
 
			<strong class=\"productPrice\">$ $precio_format</strong>
		</div><!-- ( PRODUCT DESCRIPTION END ) -->
	</div><!-- ( PRODUCT BOX END ) -->
</div>
";
if (++$i == 8) break;
}

?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar