Posts Tagged ‘XML’

abril 25, 2011 1

Parsear XML en PHP con SimpleXML

By in PHP

SimpleXML nos permite parsear un XML de una forma sencilla y usable. Para ello nos provee de una serie de funciones y de una clase para la manipulación de XML. Aquí solo vamos a ver la función simplexml_load_file, para ver un ejemplo, pero podemos ver el resto en la documentación de SimpleXML.

Supongamos que tenemos el siguiente archivo XML:

<?xml version="1.0" encoding="UTF-8"?>
<libros>
  <libro id="0">
    <titulo>Ubik</titulo>
    <autor>Philip K. Dick</autor>
</libro>
  <libro id="1">
    <titulo>La fundación</titulo>
    <autor>Isaac Asimov</autor>
  </libro>
  <libro id="2">
    <titulo>El señor de los anillos</titulo>
    <autor>J.R.R. Tolkien</autor>
  </libro>
</libros>

Con el siguiente código cargaríamos el archivo y mostraríamos un listado de los libros con el formato “id:titulo:autor”:

<?php

$libros = simplexml_load_file('libros.xml');

foreach($libros->libro as $libro)
{
 echo $libro['id'].':'.$libro->titulo.':'.$libro->autor."\n";
}

Como podemos ver cargamos el archivo libros.xml en un objeto al que hemos llamado $libros. Este objeto modelará el XML mediante arrays que contienen los elementos del xml. Las propiedades de cada elemento están implementadas como un array asociativo.

Como hemos podido ver en esta breve introducción es muy sencillo parsear un xml con SimpleML. Recomiendo revisar la documentación de este módulo para conocer todas las posibilidades que nos ofrece.

Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags: ,

noviembre 2, 2009 0

Google Sitemaps: informando a los buscadores de nuestras páginas

By in Herramientas, WordPress

Un Sitemap es un archivo XML donde informamos de las páginas que tenemos en nuestra web. Pero no solo podemos decir que páginas tenemos, si no que también podemos añadir algo más de información, como la fecha de la última modificación o la frecuencia de modificación.

Veamos a ver cual es la estructura de un archivo sitemap.xml:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

<url>
<loc>http://www.dominio.com/</loc>
<lastmod>2009-11-02</lastmod>
<changefreq>daily</changefreq>
<priority>1</priority>
</url>

<url>
<loc>http://www.dominio.com/archivo.php</loc>
<lastmod>2009-11-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>

<url>
<loc>http://www.dominio.com/enlaces.php</loc>
<lastmod>2009-01-01</lastmod>
<changefreq>yearly</changefreq>
<priority>0.4</priority>
</url>
</urlset>

Tenemos un archivo XML donde el elemento raíz es urlset. Dentro puede tener uno más elementos url. Cada elemento url puede contener varios elementos más, aunque el único obligatorio es loc. Veamos que son estos elementos:

  • loc: Índica la dirección de la página.
  • lastmod: Contiene la fecha de la última modificación de la página.
  • changefreq: Frecuencia con la que se modifica la página.
  • priority: Le indica la prioridad de la página. Puede tomar valores entre 0 y 1, pero cuidado con darle prioridad 1 a todos los elementos, ya que esto no nos servirá de nada.

El elemento lastmod tiene el formato aaaa-mm-dd y el elemento changefreq puede tomar los valores siguientes:

  • always (siempre)
  • hourly (cada hora)
  • daily (diariamente)
  • weekly (semanalmente)
  • monthly (mensualmente)
  • yearly (anualmente)
  • never (nunca)

Podemos crear nuestros Sitemaps de forma manual o de forma automática, si usamos algún gestor de contenidos. Para WordPress existe un plugin llamado Google (XML) Sitemaps generator bastante bueno para generar los sitemaps.

En otro artículo posterior veremos como dar de alta los Sitemaps con la herramienta de ayuda para wbmasters de Google.

P.D.: Durante esta semana y la que viene se publicarán algunas continuaciones de tutoriales que se han quedado a medias. Siento no poder publicar tan a menudo, pero el tiempo es algo que escasea ultimamente.

Comparte esta entrada:
Delicious Digg Google Technorati Menéame Fresqui Reddit Facebook Twitter Yahoo! Buzz MySpace Email BarraPunto

Tags: ,