PHP Avanzado: PHP, XML y Servicios Web
-
Upload
rightster -
Category
Technology
-
view
10.704 -
download
1
description
Transcript of PHP Avanzado: PHP, XML y Servicios Web
![Page 1: PHP Avanzado: PHP, XML y Servicios Web](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/1.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/2.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/3.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/4.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/5.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/6.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/7.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/8.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/9.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/10.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/11.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/12.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/13.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/14.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/15.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/16.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/17.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/18.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/19.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/20.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/21.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/22.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/23.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/24.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/25.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/26.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/27.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/28.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/29.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/30.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/31.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/32.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/33.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/34.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/35.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/36.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/37.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/38.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/39.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/40.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/41.jpg)
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](https://reader033.fdocuments.net/reader033/viewer/2022052218/557ae3c9d8b42a63778b5224/html5/thumbnails/42.jpg)
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