php avanzado: php, xml y servicios web

42
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. Conectándose con un canal RSS 6. Mostrando mis fotos de Flickr 7. Listando mis últimos tweets

Upload: rightster

Post on 12-Jun-2015

10.701 views

Category:

Technology


1 download

DESCRIPTION

¿Qué es XML?Algunos ejemplos de XMLSimpleXMLServicios WebConectándose con un canal RSSMostrando mis fotos de FlickrListando mis últimos tweets

TRANSCRIPT

Page 1: PHP Avanzado: PHP, XML y Servicios Web

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. Conectándose con un canal RSS

6. Mostrando mis fotos de Flickr

7. Listando mis últimos tweets

Page 2: PHP Avanzado: PHP, XML y Servicios Web

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. Conectándose con un canal RSS

6. Mostrando mis fotos de Flickr

7. Listando mis últimos tweets

Page 3: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.1. ¿Qué es XML?

Bloque III: PHP y XML

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

Page 4: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.1. ¿Qué es XML?

Bloque III: PHP y XML

eXtensible Markup Language

XML es un lenguaje de etiquetas, como HTML

XML está diseñado para transportar información, no para mostrarla

XML no tiene etiquetas predefinidas. Tú puedes definir las tuyas

XML está diseñado para ser auto-explicativo

XML es una recomendación del W3C

XML no hace nada

Page 5: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.1. ¿Qué es XML?

Bloque III: PHP y XML

Definición del tipo de documento

<?xml version=” 1.0” encoding=” utf-8” ?>

Tiene que ser la primera línea del documento

Page 6: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.1. ¿Qué es XML?

Bloque III: PHP y XML

Elementos XML

<mensaje>Hola Mundo</mensaje>

XML es case-sensitive

<Mensaje>Hola Mundo</Mensaje>

Es distinto de

Page 7: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.1. ¿Qué es XML?

Bloque III: PHP y XML

Elementos XML

El nombre de un elemento

1. Puede contener letras, números, puntos, dos puntos y acentos

2. Sólo pueden empezar por letras

3. No pueden empezar con las letras XML (o xml, o Xml, …)

4. No pueden contener espacios en blanco

Page 8: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.1. ¿Qué es XML?

Bloque III: PHP y XML

Elementos XML

<mensaje>Hola Mundo</mensaje>

Todas las etiquetas tienes que estar debidamente cerradas

<Mensaje />

O si tienen ningún contenido

Page 9: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.1. ¿Qué es XML?

Bloque III: PHP y XML

Elementos XML

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

Cualquier XML tiene uno y solo un elemento raíz

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

Page 10: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.1. ¿Qué es XML?

Bloque III: PHP y XML

Elementos XML

Los elementos deben estar correctamente anidados

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

</directores> </pelicula></peliculas>

Page 11: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.1. ¿Qué es XML?

Bloque III: PHP y XML

Atributos XML

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

Normalmente son utilizados para almacenar metainformación del elemento

Podemos usar tanto comillas simples como dobles

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

Page 12: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.1. ¿Qué es XML?

Bloque III: PHP y 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)

Page 13: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.1. ¿Qué es XML?

Bloque III: PHP y XML

Espacios en blanco

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

Page 14: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.1. ¿Qué es XML?

Bloque III: PHP y XML

Espacios en blanco

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

Page 15: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.1. ¿Qué es XML?

Bloque III: PHP y XML

XML válidos y bien formados

XML bien formados – cumplen con las reglas del W3C

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

XML válidos – cumplen con las especificaciones de un DTD o Schema

Page 16: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.1. ¿Qué es XML?

Bloque III: PHP y XML

El ecosistema XML

DTDDocument Type Definition

Schema XML

XPath

Namespaces

XForms

XSLT

Page 17: PHP Avanzado: PHP, XML y Servicios Web

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. Conectándose con un canal RSS

6. Mostrando mis fotos de Flickr

7. Listando mis últimos tweets

Page 18: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.2. Algunos ejemplos de XML

Bloque III: PHP y XML

Un ejemplo sobre películas

Almacenar en un XML información sobre las películas nominadas a los Óscar 2010

Page 19: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.2. Algunos ejemplos de XML

Bloque III: PHP y XML

Un ejemplo sobre películas

<?xml version='1.0' ?><peliculas>  <pelicula lang="en">

<titulo>Avatar</titulo><direccion>

<director>James Cameron</director></direccion>

</pelicula></peliculas>

Page 20: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.2. Algunos ejemplos de XML

Bloque III: PHP y XML

Un ejemplo sobre películas

Comprobamos que nuestro XML valida correctamente

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

Page 21: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.2. Algunos ejemplos de XML

Bloque III: PHP y XML

Un ejemplo sobre recetas

Almacenar en un XML información sobre recetas de cocina. Cada receta de cocina tendrá:

• Nombre de la receta

• Ingredientes

• Tiempo

• Nivel (básico, medio o avanzado)

• Preparación

• Puntuación Recomendación: http://www.canalcocina.es/

Page 22: PHP Avanzado: PHP, XML y Servicios Web

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. Conectándose con un canal RSS

6. Mostrando mis fotos de Flickr

7. Listando mis últimos tweets

Page 23: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.3. SimpleXML - Instalación

Bloque III: PHP y XML

<?php echo phpinfo(); ?>

Page 24: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.3. SimpleXML

Bloque III: PHP y XML

Un ejemplo sobre películas

1. Cargar el XML

(http://dl.dropbox.com/u/8522637/peliculas.xml)

2. Acceder a todas las películas

3. Seleccionar una película

4. Seleccionar los actores de una película

5. Añadir un actor nuevo a una película

6. Guardar el XML generado en el archivo

Page 25: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.3. SimpleXML

Bloque III: PHP y XML

El objeto SimpleXMLElement representa cualquier nodo de un archivo XML, por tanto el propio XML será un SimpleXMLElement

$xml = new SimpleXMLElement('peliculas.xml', null, true);

O bien

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

Page 26: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.3. SimpleXML

Bloque III: PHP y XML

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];

Page 27: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.3. SimpleXML

Bloque III: PHP y XML

Podemos utilizar foreach para recorrer todo un árbol

foreach( $xml­>pelicula as $pelicula){

echo $pelicula­>titulo;}

Page 28: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.3. SimpleXML

Bloque III: PHP y XML

Permite una interfaz fluido, esto es, cualquier método o atributo devuelve un elemento SimpleXML sobre el que podemos volver a operar

$xml­>pelicula[0]    ­>direccion[0]    ­>director;

Page 29: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.3. SimpleXML

Bloque III: PHP y XML

También podemos añadir elementos a cualquier nodo

$direccion = $xml­>pelicula[0]­>direccion[0];

$direccion­>addChild('director', 'Javi López');

Page 30: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.3. SimpleXML

Bloque III: PHP y XML

Y hasta podemos guardarlo en un archivo

$xml­>asXML('peliculas.bk.xml');

Page 31: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.3. SimpleXML

Bloque III: PHP y XML

Toda la documentación necesaria sobre SimpleXML

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

Page 32: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.3. SimpleXML

Bloque III: PHP y XML

Un ejemplo sobre recetas de cocina

1. Cargar el XML

2. Acceder a todas las recetas

3. Seleccionar una receta y ver su preparación

4. Seleccionar una receta y ver sus ingredientes

5. Añadir una nueva receta

6. Guardar el XML generado un archivo

Page 33: PHP Avanzado: PHP, XML y Servicios Web

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. Conectándose con un canal RSS

6. Mostrando mis fotos de Flickr

7. Listando mis últimos tweets

Page 34: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.4. Servicios Web

Bloque III: PHP y XML

Según la wikipedia

Un servicio web (en inglés, Web service) es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones.

Page 35: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.4. Servicios Web

Bloque III: PHP y XML

Utilizando XML como servicio web

Ventajas

1. Independiente de la plataforma

2. Basado en un estándar fácil de aprender y entender

3. Basado en HTTP

Inconvenientes

1. Grado de desarrollo

2. Rendimiento bajo

3. Poco seguro (¿?)

Page 36: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.4. Servicios Web

Bloque III: PHP y XML

Quién esta apostando por servicios web basados en XML

Page 37: PHP Avanzado: PHP, XML y Servicios Web

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. Conectándose con un canal RSS

6. Mostrando mis fotos de Flickr

7. Listando mis últimos tweets

Page 38: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.5. Conéctandose con un canal RSS

Bloque III: PHP y XML

RSS – Really Simple Sindacation

Permite la ¿sindicación de contenidos?

La sindicación web (redifusión web) reenvío o reemisión 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 disposición de sus usuarios los contenidos a los que en un principio sólo podían tener acceso los usuarios del sitio web de origen.

Page 39: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.5. Conéctandose con un canal RSS

Bloque III: PHP y XML

Google Reader

Page 40: PHP Avanzado: PHP, XML y Servicios Web

Desarrollo web avanzado con PHP 5

3.5. Conéctandose con un canal RSS

Bloque III: PHP y XML

Un ejemplo: consumiendo un canal RSS

Page 41: PHP Avanzado: PHP, XML y Servicios Web

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. Conectándose con un canal RSS

6. Mostrando mis fotos de Flickr

7. Listando mis últimos tweets

Page 42: PHP Avanzado: PHP, XML y Servicios Web

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. Conectándose con un canal RSS

6. Mostrando mis fotos de Flickr

7. Listando mis últimos tweets