Foros del Web » Programación para mayores de 30 ;) » Programación General »

Interesado en XML

Estas en el tema de Interesado en XML en el foro de Programación General en Foros del Web. Holassss...!!! He leido las FAQ's de Xml y me parece muy interesante, ahora mi pregunta es: Qué es lo que se puede hacer con XML, ...
  #1 (permalink)  
Antiguo 11/02/2005, 14:04
Avatar de ajmataurus  
Fecha de Ingreso: enero-2005
Mensajes: 268
Antigüedad: 19 años, 4 meses
Puntos: 0
De acuerdo Interesado en XML

Holassss...!!!
He leido las FAQ's de Xml y me parece muy interesante, ahora mi pregunta es:

Qué es lo que se puede hacer con XML, porfavor mencionenme desde lo más simple hasta lo más complejo, hasta dónde puede llegar XML??? porque mucho se habla de que XML.
Att.
Taurus
  #2 (permalink)  
Antiguo 15/02/2005, 15:33
Avatar de ajmataurus  
Fecha de Ingreso: enero-2005
Mensajes: 268
Antigüedad: 19 años, 4 meses
Puntos: 0
Holaaaaa....no hay respuesta aún???????
espero respuestas
Gracias
Att. Taurus
  #3 (permalink)  
Antiguo 10/03/2005, 10:48
Avatar de ajmataurus  
Fecha de Ingreso: enero-2005
Mensajes: 268
Antigüedad: 19 años, 4 meses
Puntos: 0
...ninguna ayuda????
__________________
creando conciencia Nacionalista...!!!!! :si:
  #4 (permalink)  
Antiguo 20/03/2005, 10:35
 
Fecha de Ingreso: marzo-2005
Mensajes: 5
Antigüedad: 19 años, 1 mes
Puntos: 0
XML viene a ser un lenguaje en el que se puede encapsular todo tipo de información. Desde lo más conocido en los ejemplos básicos; colecciones de libros, revistas,...etc. hasta toda la información almacenada en una animación con la jerarquía de los huesos del esqueleto.

En definitiva, se puede añadir todo tipo de información y por eso se habla del lenguaje estandar de comunicación entre programas. Su simplicidad de lectura y su capacidad de alamacenamiento de todo tipo de datos, son unos de los puntos más importantes que han llevado a ello. Si necesitas almo más de información al respecto, cuentame y te paso algún link de interés por donde puedes empezar a investigar y aprender sobre eXtendable Markup Language.
  #5 (permalink)  
Antiguo 20/03/2005, 22:48
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 3 meses
Puntos: 2
como lo puedo leer desde ASP?
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #6 (permalink)  
Antiguo 01/04/2005, 10:45
Avatar de dobled  
Fecha de Ingreso: enero-2002
Ubicación: Rancagua - Chile
Mensajes: 1.328
Antigüedad: 22 años, 3 meses
Puntos: 2
gracias sys_engineer lo voy a poner a prueba te cuento como me va!!
Salu2
__________________
Usa títulos específicos y con sentido
En las listas de correo o en los grupos de noticias, la cabecera del mensaje es tu oportunidad de oro para atraer la atención de expertos cualificados en aproximadamente 50 caracteres o menos. No los desperdicies en balbuceos como "Por favor ayúdame" (de "POR FAVOR AYÚDAME!!!" ya ni hablamos). No intentes impresionarnos con lo profundo de tu angustia; mejor usa ese preciado espacio para una descripción lo más concisa posible del problema.
  #7 (permalink)  
Antiguo 18/04/2005, 20:02
 
Fecha de Ingreso: marzo-2005
Mensajes: 9
Antigüedad: 19 años, 1 mes
Puntos: 0
Hola. Mira no se si podras ayudarme, espero que SI porque realmente lo nesesito, Tengo un archivo en XML, el cual contiene tres etiquetas basicas, ejemplo, id, title, content. Quisiera saber como puedo hacer en PHP para leer el contenido de estas etiquetas y mostrarlas en la pantalla a manera de reporte. Si podrias ayudarme seria magnifico. MUCHAS GRACIAS POR TODO LO QUE PUEDAS HACER.
  #8 (permalink)  
Antiguo 18/04/2005, 23:59
Avatar de lion_software  
Fecha de Ingreso: septiembre-2004
Ubicación: Colombia.
Mensajes: 6
Antigüedad: 19 años, 7 meses
Puntos: 0
Respuesta a skorphios: Parsear un archivo XML con PHP

Bien este es un ejemplo de como parsear un archivo xml, para nuestro caso llamado espanols.xml, esto lo estoy implementando para un traductor de idiomas en un proyecto que me encuentro desarrollando, espero te sirva.

Archivo XML: Crea este archivo y almacenalo en el directorio en donde crearas tu script PHP, ha este archivo XML ponle el nombre espanols.xml y listo.


<?xml version="1.0" encoding="UTF-8"?>
<lenguaje idioma="Espanol">
<titulo_navegacion_usuario>
<p sub="pla_ele">PLATAFORMA E-LEARNING</p>
<p sub="usu">Usuarios</p>
<p sub="map_sit">Mapa del sitio</p>
<p sub="ing_aul">Ingrese al Aula Virtual</p>
</titulo_navegacion_usuario>
<menu_lateral_administrador>
<p sub="foro">Foros</p>
<p sub="chat">Chat</p>
<p sub="conf">Configurar</p>
<p sub="sist">Sistema</p>
<p sub="perf">Perfil</p>
<p sub="db">DB</p>
<p sub="usu">Usuarios</p>
<p sub="tod">Todos</p>
<p sub="ser">Servicios</p>
<p sub="bus">Buscar</p>
<p sub="ali">Eliminar</p>
<p sub="ayu">Ayuda</p>
<p sub="imp">Imprimir</p>
</menu_lateral_administrador>
</lenguaje>


Y el codigo PHP que analiza & parsea (lee) el archivo XML es este, todo esto lo estoy haciendo con el fin de poder leer una seccion del archivo XML, es decir no parsear totalmente el documento XML, pero si se desea parsear todo el documento XML entonces en las siguientes lineas de codigo se envia el valor de la variable $seccion vacia es decir asi:

Código PHP:
$idioma="espanols.xml";
$seccion="";
$objeto=new Leer_XML($idioma,$seccion); 
Codigo PHP, recuerda crear el archivo XML. Este script se almacena en el mismo directorio del archivo XML.
Código PHP:
/******************************************************************************/
//Ninguna seccion tiene un mismo nombre, asi como los valores del atributo [sub] tampoco son iguales
class Leer_XML{
var  
$parser;//Analizador gramatical: Libreria Expat. SAX & DOM: La diferencia es que SAX no consume tanto recursos (Mamoria al generar una estructura de arbol que genera el DOM)como el DOM
var  $seccion_traducir;//Esta es la seccion de la interfaz de usuario que se va a traducir
var  $almacenar_array;//Esta variable determina si se va a utilizar todos los parametros del archivo XML o una seccion en particular del archivo XML
var  $tamano;//Tamaño que ocupa en disco el archivo XML
var  $fp;//Devuelve un apuntador al archivo XML especificado
/******************************************************************************/
function Leer_XML($idioma,$seccion){
 
$this->seccion_traducir=$seccion;
 if(
$this->seccion_traducir=="")//Si no se selecciona una seccion, entonces se utilizaran todos los parametros del documento XML
  
$this->almacenar_array=1;//Analizar & Extraer los datos del documento XML
/******************************************************************************/  
 
$this->parser=xml_parser_create();
 
xml_set_object($this->parser,$this);
 
xml_set_element_handler($this->parser,"tag_abre","tag_cierra"); 
 
xml_set_character_data_handler($this->parser,"contenido"); 
/******************************************************************************/
  
if(!file_exists($idioma))
    die(
"<b>No se puede encontrar el archivo $idioma</b>");
  if(!(
$this->fp = @fopen($idioma"r")))
    die(
"<b>No se puede abrir el archivo $idioma</b>");
//Tamaño del Archivo XML a analizar 
   
$this->tamano=filesize($idioma);
    
//echo  $this->tamano;
  
while(($data fread($this->fp50)))://Lee 512 bytes
   
if(!xml_parse($this->parser$datafeof($this->fp)))://Si el archivo xml esta erroneo entra al if
       
echo "<b>El archivo XML esta mal formado</b>";//El archivo XML esta dañado o mal formado
       
fseek ($this->fp$this->tamano);
     endif; 
   endwhile;
     
fclose($this->fp);
/******************************************************************************/
}
/******************************************************************************/
function tag_abre($parser$nombre$atributos){
  global 
$tag_abre;
  global 
$contenido;
  global 
$subindice;
if(
$this->seccion_traducir==$nombre)//Esto es para una seccion en particular
 
$this->almacenar_array=1;
/*******************************************/
//Se extraen datos de una seccion en particular o de todo el documento XML
 
if($this->almacenar_array==1):
  
$contenido="";
  
$tag_abre=$nombre;
   if(
$atributos!=""):
    list (,
$subindice) = each ($atributos);
    
$subindice=($subindice!="")?$subindice:0;
   endif;
 endif;
/*******************************************/

/******************************************************************************/   
function contenido($parser$valor){//Almacena todo el contenido para un par de etiquetas [Apertura,Cierre]
/*******************************************/
//Analiza el documento XML mientras el valor de la variable $this->almacenar_array sea igual a 1
//echo "<b>$valor</b><br>";
  
if($this->almacenar_array==1):
   global 
$contenido;
   global 
$tag_abre;
   
$contenido.=$valor;
  endif;
/*******************************************/
}
/******************************************************************************/  
function tag_cierra($parser$nombre){
  if(
$this->almacenar_array==1):
   global 
$contenido;
   global 
$tag_abre;
   global 
$palabras;
   global 
$subindice;
    if(
$tag_abre==$nombre&&$subindice!="NO")://[Las etiquetas de apertura y cierre son iguales] 
     
echo "&lt$tag_abre&gt$contenido&lt/$nombre&gt<br>";
     
$palabras[$subindice]=$contenido;
    endif;
  endif;
  if(
$this->seccion_traducir==$nombre):
   
$this->almacenar_array=0;//Asigna este valor para que ya no se pueda seguir analizando el documento XML
   
fseek ($this->fp$this->tamano);
  endif; 
}
}
//Fin Clase Leer_XML
/******************************************************************************/
/******************************************************************************/
$idioma="espanols.xml";
$seccion="TITULO_NAVEGACION_USUARIO";
$objeto=new Leer_XML($idioma,$seccion); 
Exitos...

Última edición por lion_software; 19/04/2005 a las 00:08
  #9 (permalink)  
Antiguo 19/04/2005, 07:44
 
Fecha de Ingreso: abril-2005
Mensajes: 5
Antigüedad: 19 años
Puntos: 0
Me parece mas sencillo parsear de esta manera:

------------------------------------------------
<?php

$etiquetaActual="";

function ComienzoElemento($parser,$name,$attribs)
{
global $etiquetaActual, $currentAttribs;
$etiquetaActual=$name;
switch($name)
{ case "ID":
echo '<tr><td><b>Id:</b> ';
break;
case "TITLE":
echo '<tr><td><b>Title:</b> ';
break;
default:
echo "no hay mas etiquetas";
}
}

function FinalElemento($parser,$name)
{
global $etiquetaActual;
switch ($name)
{
case "ID":
echo "</td></tr>";
break;
case "TITLE":
echo "</td></tr>";
break;

default:
echo "error en formato ficha";
}
$etiquetaActual="";
}

function Datos($parser,$data)
{
global $etiquetaActual;
switch ($etiquetaActual)
{
case "ID":
echo $data;
break;
case "TITLE":
echo $data;
break;
}
}

$file = "ejemplo.xml";

$xmlParser = xml_parser_create();
$targetEncoding=xml_parser_get_option($xmlParser,X ML_OPTION_TARGET_ENCODING);
xml_set_default_handler($parser,"Datos");

xml_set_element_handler($xmlParser,"ComienzoElemen to", "FinalElemento");
xml_set_character_data_handler($xmlParser, "Datos");
if (!($fp = fopen($file, "r"))) {
die("No se puede abrir el fichero: $file");
}

while ($data = fread($fp, 4096)) {
if (!xml_parse($xmlParser, $data, feof($fp))) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xmlParser)),
xml_get_current_line_number($xmlParser)));
}
}
?>
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 03:45.