Você está na página 1de 42

Bloque III: PHP y XML

1. Qu es XML? 2. Algunos ejemplos de XML 3. SimpleXML 4. Servicios Web 5. Conectndose con un canal RSS 6. Mostrando mis fotos de Flickr 7. Listando mis ltimos tweets

Desarrollo web avanzado con PHP5

Bloque III: PHP y XML


1. Qu es XML? 2. Algunos ejemplos de XML 3. SimpleXML 4. Servicios Web 5. Conectndose con un canal RSS 6. Mostrando mis fotos de Flickr 7. Listando mis ltimos tweets

Desarrollo web avanzado con PHP5

3.1. Qu es XML?

<?xml version= 1.0 encoding= utf-8 <mensaje>Hola Mundo</mensaje>

? >

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.1. Qu es XML?
eXtensible Markup Language XML es un lenguaje de etiquetas, como HTML XML est diseado para transportar informacin, no para mostrarla XML no tiene etiquetas predefinidas. T puedes definir las tuyas XML est diseado para ser auto-explicativo XML es una recomendacin del W3C XML no hace nada

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.1. Qu es XML?
Definicin del tipo de documento
Tiene que ser la primera lnea del documento

<?xml version= 1.0

encoding= utf-8

? >

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.1. Qu es XML?
Elementos XML
XML es case-sensitive

<mensaje>Hola Mundo</mensaje>
Es distinto de

<Mensaje>Hola Mundo</Mensaje>

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.1. Qu es XML?
Elementos XML
El nombre de un elemento 1. Puede contener letras, nmeros, puntos, dos puntos y acentos 2. Slo pueden empezar por letras 3. No pueden empezar con las letras XML (o xml, o Xml, ) 4. No pueden contener espacios en blanco

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.1. Qu es XML?
Elementos XML
Todas las etiquetas tienes que estar debidamente cerradas

<mensaje>Hola Mundo</mensaje>
O si tienen ningn contenido

<Mensaje />

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.1. Qu es XML?
Elementos XML
Cualquier XML tiene uno y solo un elemento raz

<?xml version= 1.0 <peliculas> <pelicula> Avatar </pelicula> <pelicula> Distrito 9 </pelicula> </peliculas>
Desarrollo web avanzado con PHP 5

?>

<?xml version= 1.0 <pelicula> Avatar </pelicula> <pelicula> Distrito 9 </pelicula>

?>

Bloque III: PHP y XML

3.1. Qu es XML?
Elementos XML
Los elementos deben estar correctamente anidados

<peliculas> <pelicula> <directores> <director>James Cameron</director> </directores> </pelicula> </peliculas>

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.1. Qu es XML?
Atributos XML
Normalmente son utilizados para almacenar metainformacin del elemento

<mensaje lang= es >Hola Mundo</mensaje>

Podemos usar tanto comillas simples como dobles

<mensaje lang='es' >Hello World</mensaje>

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.1. Qu es XML?
Espacios en blanco
Se entiende por espacio en blanco saltos de carros, sangrados, tabulaciones y por supuesto, un espacio Son obligatorios para separar el nombre de un atributo del nombre del elemento Son aconsejados para permitir una mejor lectura del documento (tabulaciones para indicar anidaciones)

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.1. Qu es XML?
Espacios en blanco

<

mensaje lang= es

>Hola Mundo</mensaje

>

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.1. Qu es XML?
Espacios en blanco

<peliculas><pelicula><directores> <director>James Cameron</director> </directores></pelicula></peliculas>

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.1. Qu es XML?
XML vlidos y bien formados
XML bien formados cumplen con las reglas del W3C http://www.w3schools.com/XML/xml_validator.asp

XML vlidos cumplen con las especificaciones de un DTD o Schema

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.1. Qu es XML?
El ecosistema XML

DTD
Document Type Definition

Namespaces

Schema XML

XForms

XPath

XSLT

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

Bloque III: PHP y XML


1. Qu es XML? 2. Algunos ejemplos de XML 3. SimpleXML 4. Servicios Web 5. Conectndose con un canal RSS 6. Mostrando mis fotos de Flickr 7. Listando mis ltimos tweets

Desarrollo web avanzado con PHP5

3.2. Algunos ejemplos de XML

Un ejemplo sobre pelculas


Almacenar en un XML informacin sobre las pelculas nominadas a los scar 2010

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.2. Algunos ejemplos de XML

Un ejemplo sobre pelculas


<?xmlversion='1.0'?> <peliculas> <peliculalang="en"> <titulo>Avatar</titulo> <direccion> <director>JamesCameron</director> </direccion> </pelicula> </peliculas>

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.2. Algunos ejemplos de XML

Un ejemplo sobre pelculas


Comprobamos que nuestro XML valida correctamente

http://www.w3schools.com/xml/xml_validator.asp

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.2. Algunos ejemplos de XML

Un ejemplo sobre recetas


Almacenar en un XML informacin sobre recetas de cocina. Cada receta de cocina tendr:

Nombre de la receta Ingredientes Tiempo Nivel (bsico, medio o avanzado) Preparacin Puntuacin
Recomendacin: http://www.canalcocina.es/

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

Bloque III: PHP y XML


1. Qu es XML? 2. Algunos ejemplos de XML 3. SimpleXML 4. Servicios Web 5. Conectndose con un canal RSS 6. Mostrando mis fotos de Flickr 7. Listando mis ltimos tweets

Desarrollo web avanzado con PHP5

3.3. SimpleXML - Instalacin


<?phpechophpinfo();?>

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.3. SimpleXML

Un ejemplo sobre pelculas


1. Cargar el XML (http://dl.dropbox.com/u/8522637/peliculas.xml) 2. Acceder a todas las pelculas 3. Seleccionar una pelcula 4. Seleccionar los actores de una pelcula 5. Aadir un actor nuevo a una pelcula 6. Guardar el XML generado en el archivo
Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML

3.3. SimpleXML
El objeto SimpleXMLElement representa cualquier nodo de un archivo XML, por tanto el propio XML ser un SimpleXMLElement $xml= newSimpleXMLElement('peliculas.xml',null,true); O bien $xml=simplexml_load_file('peliculas.xml');

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.3. SimpleXML
Accedemos a los hijos como si fueran atributos del objeto $peliculas=$xml>pelicula

Podemos seleccionar un hijo como si fuera un elemento de un array $pelicula=$xml>pelicula[0];

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.3. SimpleXML
Podemos utilizar foreach para recorrer todo un rbol foreach($xml>peliculaas$pelicula) { echo$pelicula>titulo; }

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.3. SimpleXML
Permite una interfaz fluido, esto es, cualquier mtodo o atributo devuelve un elemento SimpleXML sobre el que podemos volver a operar $xml>pelicula[0] >direccion[0] >director;

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.3. SimpleXML
Tambin podemos aadir elementos a cualquier nodo $direccion=$xml>pelicula[0]>direccion[0]; $direccion>addChild('director','JaviLpez');

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.3. SimpleXML
Y hasta podemos guardarlo en un archivo $xml>asXML('peliculas.bk.xml');

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.3. SimpleXML
Toda la documentacin necesaria sobre SimpleXML

http://php.net/manual/es/book.simplexml.php

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.3. SimpleXML

Un ejemplo sobre recetas de cocina


1. Cargar el XML 2. Acceder a todas las recetas 3. Seleccionar una receta y ver su preparacin 4. Seleccionar una receta y ver sus ingredientes 5. Aadir una nueva receta 6. Guardar el XML generado un archivo

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

Bloque III: PHP y XML


1. Qu es XML? 2. Algunos ejemplos de XML 3. SimpleXML 4. Servicios Web 5. Conectndose con un canal RSS 6. Mostrando mis fotos de Flickr 7. Listando mis ltimos tweets

Desarrollo web avanzado con PHP5

3.4. Servicios Web


Segn la wikipedia Unservicioweb(eningls,Webservice)esun conjuntodeprotocolosyestndaresquesirvenpara intercambiardatosentreaplicaciones.

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.4. Servicios Web


Utilizando XML como servicio web Ventajas 1. Independiente de la plataforma 2. Basado en un estndar fcil de aprender y entender 3. Basado en HTTP Inconvenientes 1. Grado de desarrollo 2. Rendimiento bajo 3. Poco seguro (?)

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.4. Servicios Web


Quin esta apostando por servicios web basados en XML

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

Bloque III: PHP y XML


1. Qu es XML? 2. Algunos ejemplos de XML 3. SimpleXML 4. Servicios Web 5. Conectndose con un canal RSS 6. Mostrando mis fotos de Flickr 7. Listando mis ltimos tweets

Desarrollo web avanzado con PHP5

3.5. Conctandose con un canal RSS

RSS Really Simple Sindacation

Permite la sindicacin de contenidos?

La sindicacin web (redifusin web) reenvo o reemisin de contenidos desde una fuente original (sitio web de origen) hasta otro sitio web de destino (receptor) que a su vez se convierte en emisor puesto que pone a disposicin de sus usuarios los contenidos a los que en un principio slo podan tener acceso los usuarios del sitio web de origen.

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.5. Conctandose con un canal RSS

Google Reader

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

3.5. Conctandose con un canal RSS

Un ejemplo: consumiendo un canal RSS

Desarrollo web avanzado con PHP 5

Bloque III: PHP y XML

Bloque III: PHP y XML


1. Qu es XML? 2. Algunos ejemplos de XML 3. SimpleXML 4. Servicios Web 5. Conectndose con un canal RSS 6. Mostrando mis fotos de Flickr 7. Listando mis ltimos tweets

Desarrollo web avanzado con PHP5

Bloque III: PHP y XML


1. Qu es XML? 2. Algunos ejemplos de XML 3. SimpleXML 4. Servicios Web 5. Conectndose con un canal RSS 6. Mostrando mis fotos de Flickr 7. Listando mis ltimos tweets

Desarrollo web avanzado con PHP5

Você também pode gostar