manual de PHP y XML
-
Upload
luisjavierto1572 -
Category
Documents
-
view
65 -
download
4
Transcript of manual de PHP y XML
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
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
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>
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
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
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
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
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
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>
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>
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>
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)
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 >
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>
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
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
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
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
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>
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
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/
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
Desarrollo web avanzado con PHP 5
3.3. SimpleXML - Instalación
Bloque III: PHP y XML
<?php echo phpinfo(); ?>
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
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');
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];
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;}
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;
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');
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');
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
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
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
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.
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 (¿?)
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
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
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.
Desarrollo web avanzado con PHP 5
3.5. Conéctandose con un canal RSS
Bloque III: PHP y XML
Google Reader
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
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
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