Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/12/2010, 04:27
Avatar de Jask
Jask
 
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años, 1 mes
Puntos: 15
Mensaje Leer parte de un archivo XML

Buenas, qué tal?

Quería pregunarles como puedo leer una parte de un archivo XML. Es decir, yo tengo este archivo:

Código XML:
Ver original
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <horoscopo>
  3.     <s_tauro>
  4.         <amor>Piensatelo dos veces antes de actuar. Piensatelo dos veces antes de actuar. Piensatelo dos veces antes de actuar. Piensatelo dos veces antes de actuar. Piensatelo dos veces antes de actuar. Piensatelo dos veces antes de actuar. Piensatelo dos veces antes de actuar. Piensatelo dos veces antes de actuar.</amor>
  5.         <amistad></amistad>
  6.         <truco></truco>
  7.     </s_tauro>
  8.     <s_sagitario>
  9.         <amor>Estáis hechos el uno para el otro, ¡no lo dudes!</amor>
  10.         <amistad>Un amigo está ahí incluso cuando no le llamas.</amistad>
  11.         <truco>El must para las noches son los vestidos de lentejuelas</truco>
  12.     </s_sagitario>
  13.     <s_piscis>
  14.         <amor>Piénsalo… ¿realmente es el chico de tus sueños?</amor>
  15.         <amistad>Tus friends siempre te ayudan, no olvides devoverles el favor.</amistad>
  16.         <truco>Un maxibolso será ideal para ir al cole o al insti.</truco>
  17.     </s_piscis>
  18.     <s_libra>
  19.         <amor>¡Está claro! Él es tu Edward, ¡es la razón de tu existencia!</amor>
  20.         <amistad>Se acerca la navidad… vete de shopping con tus friends!!</amistad>
  21.         <truco>Peinate con un moño bien alto ¡y serás la reina de la fiesta!</truco>
  22.     </s_libra>
  23.     <s_leo>
  24.         <amor>Estais bien juntos. No le des más vueltas, ¡la felicidad existe!</amor>
  25.         <amistad>Una de cal y otra de arena. Los amigos pueden fallar, pero hay que saber perdonar</amistad>
  26.         <truco>Olvídate del negro para el día a día. ¡¡Power Colourfull!</truco>
  27.     </s_leo>
  28. </horoscopo>

Y tengo un archivo php que lo llama ( es un plugin de wordpress )

Código PHP:
<?php

// Más información: http://codex.wordpress.org/es:Plugin_API#Acciones
add_action'widgets_init''insert_widget');

function 
insert_widget(){
    
register_widget('Horoscope_Widget');
}

class 
Horoscope_Widget extends WP_Widget {

    function 
Horoscope_Widget(){
        
        
## Widget Settings
        
$widget_ops = array('classname' => 'horoscopo''description' => __('Widget Horóscopo que muestra imágenes aleatórias.''widgethoros') );
        
        
## Widget Control Settings
        
$control_ops = array('width' => 200'height' => 250'id_base' => 'horoscope-base');
        
        
## Create the widget
        
$this->WP_Widget('horoscope-base'__('Horoscope Widget''horoscopo'), $widget_ops$control_ops);
    }
    
    
// Como se va a mostrar el widget en pantalla
    
function widget($args$instance){
    
        
## Más info: http://php.net/manual/es/function.extract.php
        
extract($args);
        
        
## Variables para las preferencias del Widget
        
$tittle apply_filters('widget_title'$instance['title'] );
        
$contenido $instance['contenido'];
        
        
## Antes del Widget (Defininido por el theme)
        
echo $before_widget;
        
$title "Horóscopo";    
        if(
$title){
            echo 
$before_title$title $after_title;
        }
        
        
## Imágenes Aleatórias
        
$imagen = array("aries""tauro""geminis""cancer""leo""virgo""libra""escorpio""sagitario""capricornio""acuario""piscis");
        
$i rand(011);
        
        
$directorio "/wp-content/plugins/wp-horoscope/images/".$imagen[$i];
        
        
## URL Comprueba    
        
$url_comprueba $_SERVER['DOCUMENT_ROOT'].$directorio;
        
        
## URL Completa
        
$url_completa =  "http://".$_SERVER['SERVER_NAME'].$directorio;
        
        
        
## Función que coprueba la extensión del archivo.
        
if(file_exists($url_comprueba.".gif")){
            
$extension ".gif";
        }else{
            
$extension ".png";
        }        
            
        
## Contenido
            // Se lee el contenido del .xml para ponerlo al lado de la imagen
            
$xml simplexml_load_file("http://".$_SERVER['SERVER_NAME']."/wp-content/plugins/wp-horoscope/horoscopo.xml");
            
                
$cont 1;
            
                
// Imprimir el nombre
                
echo $xml->getName() . "<br />";
                    
                foreach(
$xml->children() as $child){
                    echo 
$child->getName() . ": " $child "<br />";
                }
            
             
/*
             foreach ($xml->children() as $sign) {
                echo "Contenido<input name='".$signs[$cont]."_amor' type='text' size='50' value='".$sign->amor."'><br />\n";
                echo "<input name='".$signs[$cont]."_fecha' type='hidden' value='".$date[$cont]."'><br />\n";
                echo "<input name='".$signs[$cont]."_imagen' type='hidden' value='wp-content/plugins/wp-horoscope/".$signs[$cont].".gif'><br />\n";
                $cont = $cont +1;
            }
            */

         
        
$directorio "<div style='text-align:left; height:125px;'><a href='http://".$_SERVER['SERVER_NAME']."/horoscopo/'><img src='".$url_completa$extension."' alt='".$imagen[$i]."' align='left'></a> <span style='position:relative; top:25px;'><a href='http://".$_SERVER['SERVER_NAME']."/horoscopo/'>Prueba de jojojojojojojojo.</a></span></div>";
        echo 
__($directorio'horoscopo') . '<p>'$contenido;
        
        
##*Después del Widget (Definido por el theme)
        
echo $after_widget;
                
    }
    
    
// Actualización del Widget
    
function update$new_instance$old_instance){
        
$instance $old_instance;
        
        
## strip_tags: Más info - http://php.net/manual/es/function.strip-tags.php
        
        
$instance['title'] = strip_tags($new_instance['title']);
        
$instance['contenido'] = strip_tags($new_instance['contenido']);
        
        return 
$instance;
        
    }

}

 
?>
Resumiendo. Lo que hace el php es llamar al XML y mostrar aleatóriamente una imagen de signos del zodiaco, que redirige a una sección. Lo que busco es que al lado del signo aparezca un pequeño resumen de ese signo, el cual lo tengo en el XML habría alguna forma de llamar a una sección en concreto????

Gracias
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?