Este documento trata sobre PHP y XML. Explica qué es XML, da algunos ejemplos como almacenar información sobre películas y recetas de cocina en XML. Luego introduce SimpleXML para cargar, acceder y modificar archivos XML en PHP. También cubre servicios web basados en XML y cómo conectarse a canales RSS y mostrar datos de Flickr y Twitter usando APIs basadas en XML.
Proyecto integrador. Las TIC en la sociedad S4.pptx
PHP XML SimpleXML
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 tweets
Desarrollo web avanzado con PHP5
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 tweets
Desarrollo web avanzado con PHP5
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. 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 nada
Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
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. 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. 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 blanco
Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
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. 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. 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. 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. 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. 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. 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. 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 Schema
Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
16. 3.1. ¿Qué es XML?
El ecosistema XML
DTD Namespaces
Document Type Definition
Schema XML XForms
XPath XSLT
Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
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 tweets
Desarrollo web avanzado con PHP5
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 2010
Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
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. 3.2. Algunos ejemplos de XML
Un ejemplo sobre películas
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
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. 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
Desarrollo web avanzado con PHP5
23. 3.3. SimpleXML - Instalación
<?php echo phpinfo(); ?>
Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
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 archivo
Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
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. 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. 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. 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. 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. 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. 3.3. SimpleXML
Toda la documentación necesaria sobre SimpleXML
http://php.net/manual/es/book.simplexml.php
Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
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 archivo
Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
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 tweets
Desarrollo web avanzado con PHP5
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. 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 HTTP
Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
36. 3.4. Servicios Web
Quién esta apostando por servicios web basados en XML
Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
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 tweets
Desarrollo web avanzado con PHP5
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. 3.5. Conéctandose con un canal RSS
Google Reader
Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
40. 3.5. Conéctandose con un canal RSS
Un ejemplo: consumiendo un canal RSS
Desarrollo web avanzado con PHP 5 Bloque III: PHP y XML
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 tweets
Desarrollo web avanzado con PHP5
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 tweets
Desarrollo web avanzado con PHP5