Foros del Web » Programando para Internet » PHP »

Leer parte de un archivo XML

Estas en el tema de Leer parte de un archivo XML en el foro de PHP en Foros del Web. Buenas, qué tal? Quería pregunarles como puedo leer una parte de un archivo XML. Es decir, yo tengo este archivo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código XML: Ver ...
  #1 (permalink)  
Antiguo 20/12/2010, 04:27
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
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 :) ?
  #2 (permalink)  
Antiguo 20/12/2010, 06:58
 
Fecha de Ingreso: diciembre-2010
Mensajes: 32
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Leer parte de un archivo XML

Jask, te recomiendo mirar la función simpleXML de php. Googlealo, que hay un montón de info.
  #3 (permalink)  
Antiguo 20/12/2010, 07:38
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Leer parte de un archivo XML

Pasa por el área de aportes, hay un tema que te indica como parsear un xml con PHP.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: xml
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 15:18.