PHP Avanzado: PHP, XML y Servicios Web

11,748 views

Published on

¿Qué es XML?
Algunos ejemplos de XML
SimpleXML
Servicios Web
Conectándose con un canal RSS
Mostrando mis fotos de Flickr
Listando mis últimos tweets

Published in: Technology, News & Politics
2 Comments
3 Likes
Statistics
Notes
No Downloads
Views
Total views
11,748
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
498
Comments
2
Likes
3
Embeds 0
No embeds

No notes for slide

PHP Avanzado: PHP, XML y Servicios Web

  1. 1. 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 tweetsDesarrollo web avanzado con PHP5
  2. 2. 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 tweetsDesarrollo web avanzado con PHP5
  3. 3. 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
  4. 4. 3.1. ¿Qué es 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 nadaDesarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  5. 5. 3.1. ¿Qué es XML? Definición del tipo de documento Tiene que ser la primera línea del documento <?xml version=” 1.0” encoding=” utf-8” ? >Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  6. 6. 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
  7. 7. 3.1. ¿Qué es 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 blancoDesarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  8. 8. 3.1. ¿Qué es XML? Elementos XML Todas las etiquetas tienes que estar debidamente cerradas <mensaje>Hola Mundo</mensaje> O si tienen ningún contenido <Mensaje />Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  9. 9. 3.1. ¿Qué es XML? Elementos XML Cualquier XML tiene uno y solo un elemento raíz <?xml version=” 1.0” ?> <?xml version=” 1.0” ?> <peliculas> <pelicula> <pelicula> Avatar Avatar </pelicula> </pelicula> <pelicula> <pelicula> Distrito 9 Distrito 9 </pelicula> </pelicula> </peliculas>Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  10. 10. 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
  11. 11. 3.1. ¿Qué es XML? Atributos XML Normalmente son utilizados para almacenar metainformación 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
  12. 12. 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
  13. 13. 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
  14. 14. 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
  15. 15. 3.1. ¿Qué es 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 SchemaDesarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  16. 16. 3.1. ¿Qué es XML? El ecosistema XML DTD Namespaces Document Type Definition Schema XML XForms XPath XSLTDesarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  17. 17. 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 tweetsDesarrollo web avanzado con PHP5
  18. 18. 3.2. Algunos ejemplos de XML Un ejemplo sobre películas Almacenar en un XML información sobre las películas nominadas a los Óscar 2010Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  19. 19. 3.2. Algunos ejemplos de 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>Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  20. 20. 3.2. Algunos ejemplos de XML Un ejemplo sobre películas Comprobamos que nuestro XML valida correctamente http://www.w3schools.com/xml/xml_validator.aspDesarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  21. 21. 3.2. Algunos ejemplos de 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/Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  22. 22. 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 tweetsDesarrollo web avanzado con PHP5
  23. 23. 3.3. SimpleXML - Instalación <?php echo phpinfo(); ?>Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  24. 24. 3.3. SimpleXML 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 archivoDesarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  25. 25. 3.3. SimpleXML 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);Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  26. 26. 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
  27. 27. 3.3. SimpleXML Podemos utilizar foreach para recorrer todo un árbol foreach( $xml­>pelicula as $pelicula) { echo $pelicula­>titulo; }Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  28. 28. 3.3. SimpleXML 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;Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  29. 29. 3.3. SimpleXML También podemos añadir elementos a cualquier nodo $direccion = $xml­>pelicula[0]­>direccion[0]; $direccion­>addChild(director, Javi López);Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  30. 30. 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
  31. 31. 3.3. SimpleXML Toda la documentación necesaria sobre SimpleXML http://php.net/manual/es/book.simplexml.phpDesarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  32. 32. 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 preparación 4. Seleccionar una receta y ver sus ingredientes 5. Añadir una nueva receta 6. Guardar el XML generado un archivoDesarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  33. 33. 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 tweetsDesarrollo web avanzado con PHP5
  34. 34. 3.4. Servicios Web 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.Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  35. 35. 3.4. Servicios Web Utilizando XML como servicio web Ventajas Inconvenientes 1. Independiente de la plataforma 1. Grado de desarrollo 2. Basado en un estándar fácil de 2. Rendimiento bajo aprender y entender 3. Poco seguro (¿?) 3. Basado en HTTPDesarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  36. 36. 3.4. Servicios Web Quién esta apostando por servicios web basados en XMLDesarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  37. 37. 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 tweetsDesarrollo web avanzado con PHP5
  38. 38. 3.5. Conéctandose con un canal RSS 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.Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  39. 39. 3.5. Conéctandose con un canal RSS Google ReaderDesarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  40. 40. 3.5. Conéctandose con un canal RSS Un ejemplo: consumiendo un canal RSSDesarrollo web avanzado con PHP 5 Bloque III: PHP y XML
  41. 41. 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 tweetsDesarrollo web avanzado con PHP5
  42. 42. 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 tweetsDesarrollo web avanzado con PHP5

×