SlideShare una empresa de Scribd logo
1 de 42
Descargar para leer sin conexión
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 PHP5
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.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
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
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
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
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. SimpleXML - Instalación

        <?php echo phpinfo(); ?>




Desarrollo web avanzado con PHP 5   Bloque III: PHP y XML
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
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
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
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
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
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
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
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
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
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.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
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
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
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.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
3.5. Conéctandose con un canal RSS




   Google Reader




Desarrollo web avanzado con PHP 5      Bloque III: PHP y XML
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
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 PHP5

Más contenido relacionado

La actualidad más candente

Adentrándonos al Framework Symfony
Adentrándonos al  Framework SymfonyAdentrándonos al  Framework Symfony
Adentrándonos al Framework SymfonyRodrigo Miranda
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Edgar Dueñas
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasosSoni BM
 
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Raul Fraile
 
Mi primer programa en Symfony2
Mi primer programa en Symfony2Mi primer programa en Symfony2
Mi primer programa en Symfony2César Hernández
 
Programacion Orientada a Objetos en php
Programacion Orientada a Objetos en phpProgramacion Orientada a Objetos en php
Programacion Orientada a Objetos en phpSamuel Piñon Garcia
 
Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5Raul Fraile
 
desarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqldesarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqlJuan Timoteo Cori
 
Las buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones SymfonyLas buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones Symfonysymfony_bcn
 
Iniciación PHP 5. Introducción
Iniciación PHP 5. IntroducciónIniciación PHP 5. Introducción
Iniciación PHP 5. IntroducciónRightster
 
Desarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y AngularDesarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y AngularFreelancer
 
Iniciación PHP 5. Ejercicios
Iniciación PHP 5. EjerciciosIniciación PHP 5. Ejercicios
Iniciación PHP 5. EjerciciosRightster
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plonementtes
 
Elementos sobre Symfony 2.1
Elementos sobre Symfony 2.1Elementos sobre Symfony 2.1
Elementos sobre Symfony 2.1Yaismel Miranda
 
Curso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVCurso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVIrontec
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completoAndrés Amaya
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan phpCarlos Zantana
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRJuan Belón Pérez
 

La actualidad más candente (20)

Adentrándonos al Framework Symfony
Adentrándonos al  Framework SymfonyAdentrándonos al  Framework Symfony
Adentrándonos al Framework Symfony
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
 
Symfony2: Framework para PHP5
Symfony2: Framework para PHP5Symfony2: Framework para PHP5
Symfony2: Framework para PHP5
 
Mi primer programa en Symfony2
Mi primer programa en Symfony2Mi primer programa en Symfony2
Mi primer programa en Symfony2
 
CRUD básico con Symfony
CRUD básico con SymfonyCRUD básico con Symfony
CRUD básico con Symfony
 
Programacion Orientada a Objetos en php
Programacion Orientada a Objetos en phpProgramacion Orientada a Objetos en php
Programacion Orientada a Objetos en php
 
Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5Symfony2: Interacción con CSS, JS y HTML5
Symfony2: Interacción con CSS, JS y HTML5
 
desarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqldesarrolo de sitios web php y mysql
desarrolo de sitios web php y mysql
 
Las buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones SymfonyLas buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones Symfony
 
Symfony Parte 2
Symfony Parte 2Symfony Parte 2
Symfony Parte 2
 
Iniciación PHP 5. Introducción
Iniciación PHP 5. IntroducciónIniciación PHP 5. Introducción
Iniciación PHP 5. Introducción
 
Desarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y AngularDesarrollo Web Ágil con Symfony, Bootstrap y Angular
Desarrollo Web Ágil con Symfony, Bootstrap y Angular
 
Iniciación PHP 5. Ejercicios
Iniciación PHP 5. EjerciciosIniciación PHP 5. Ejercicios
Iniciación PHP 5. Ejercicios
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plone
 
Elementos sobre Symfony 2.1
Elementos sobre Symfony 2.1Elementos sobre Symfony 2.1
Elementos sobre Symfony 2.1
 
Curso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVCurso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPV
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completo
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan php
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 

Destacado

Iniciación PHP 5. Arquitectura cliente/servidor
Iniciación PHP 5. Arquitectura cliente/servidorIniciación PHP 5. Arquitectura cliente/servidor
Iniciación PHP 5. Arquitectura cliente/servidorRightster
 
Beyond Virtualisation
Beyond VirtualisationBeyond Virtualisation
Beyond VirtualisationRightster
 
Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.Ángel Acaymo M. G.
 
Users - Desarrollo PHP + MySQL
Users - Desarrollo PHP + MySQLUsers - Desarrollo PHP + MySQL
Users - Desarrollo PHP + MySQLAndrés Pizarro
 
Programacion Estructurada en C - Antonakos
Programacion Estructurada en C - AntonakosProgramacion Estructurada en C - Antonakos
Programacion Estructurada en C - AntonakosGustavo Tello Pais
 
Presentación Framework CodeIgniter
Presentación Framework CodeIgniter Presentación Framework CodeIgniter
Presentación Framework CodeIgniter ADWE Team
 
#Mgghub Cookies y privacidad ¿Cumple tu web con la ley?
#Mgghub Cookies y privacidad ¿Cumple tu web con la ley?#Mgghub Cookies y privacidad ¿Cumple tu web con la ley?
#Mgghub Cookies y privacidad ¿Cumple tu web con la ley?madridgeekgirls
 
Metodologia de una tesis1
Metodologia de una tesis1Metodologia de una tesis1
Metodologia de una tesis1emelec2014
 
Comunicaciones electronicas
Comunicaciones electronicasComunicaciones electronicas
Comunicaciones electronicasXavier Ribas
 
Las redes sociales jose luis de la mata
Las redes sociales jose luis de la mataLas redes sociales jose luis de la mata
Las redes sociales jose luis de la mataConfesorAD
 
Procedimiento de notificacion de infracciones a ISP
Procedimiento de notificacion de infracciones a ISPProcedimiento de notificacion de infracciones a ISP
Procedimiento de notificacion de infracciones a ISPXavier Ribas
 
Cookies
CookiesCookies
Cookies1 2d
 
Guía de Cookies (Vídeo)
Guía de Cookies (Vídeo)Guía de Cookies (Vídeo)
Guía de Cookies (Vídeo)Xavier Ribas
 
Propiedad intelectual e Internet - Gigantes o molinos?
Propiedad intelectual e Internet - Gigantes o molinos?Propiedad intelectual e Internet - Gigantes o molinos?
Propiedad intelectual e Internet - Gigantes o molinos?Xavier Ribas
 
Responsabilidad de los Directores de Sistemas
Responsabilidad de los Directores de SistemasResponsabilidad de los Directores de Sistemas
Responsabilidad de los Directores de SistemasXavier Ribas
 

Destacado (20)

Iniciación PHP 5. Arquitectura cliente/servidor
Iniciación PHP 5. Arquitectura cliente/servidorIniciación PHP 5. Arquitectura cliente/servidor
Iniciación PHP 5. Arquitectura cliente/servidor
 
Beyond Virtualisation
Beyond VirtualisationBeyond Virtualisation
Beyond Virtualisation
 
Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.Servidor Web Apache, PHP, MySQL.
Servidor Web Apache, PHP, MySQL.
 
Users - Desarrollo PHP + MySQL
Users - Desarrollo PHP + MySQLUsers - Desarrollo PHP + MySQL
Users - Desarrollo PHP + MySQL
 
Programacion Estructurada en C - Antonakos
Programacion Estructurada en C - AntonakosProgramacion Estructurada en C - Antonakos
Programacion Estructurada en C - Antonakos
 
MVC
MVCMVC
MVC
 
Febrero 2009 - Presentación PFC AGritos!
Febrero 2009 - Presentación PFC AGritos!Febrero 2009 - Presentación PFC AGritos!
Febrero 2009 - Presentación PFC AGritos!
 
Presentación Framework CodeIgniter
Presentación Framework CodeIgniter Presentación Framework CodeIgniter
Presentación Framework CodeIgniter
 
#Mgghub Cookies y privacidad ¿Cumple tu web con la ley?
#Mgghub Cookies y privacidad ¿Cumple tu web con la ley?#Mgghub Cookies y privacidad ¿Cumple tu web con la ley?
#Mgghub Cookies y privacidad ¿Cumple tu web con la ley?
 
Metodologia de una tesis1
Metodologia de una tesis1Metodologia de una tesis1
Metodologia de una tesis1
 
Comunicaciones electronicas
Comunicaciones electronicasComunicaciones electronicas
Comunicaciones electronicas
 
Web Analytics | Clase 1/4
Web Analytics | Clase 1/4Web Analytics | Clase 1/4
Web Analytics | Clase 1/4
 
Las redes sociales jose luis de la mata
Las redes sociales jose luis de la mataLas redes sociales jose luis de la mata
Las redes sociales jose luis de la mata
 
Procedimiento de notificacion de infracciones a ISP
Procedimiento de notificacion de infracciones a ISPProcedimiento de notificacion de infracciones a ISP
Procedimiento de notificacion de infracciones a ISP
 
Cookies
CookiesCookies
Cookies
 
Cookies: ¿Cómo funcionan?
Cookies: ¿Cómo funcionan?Cookies: ¿Cómo funcionan?
Cookies: ¿Cómo funcionan?
 
Guía de Cookies (Vídeo)
Guía de Cookies (Vídeo)Guía de Cookies (Vídeo)
Guía de Cookies (Vídeo)
 
Propiedad intelectual e Internet - Gigantes o molinos?
Propiedad intelectual e Internet - Gigantes o molinos?Propiedad intelectual e Internet - Gigantes o molinos?
Propiedad intelectual e Internet - Gigantes o molinos?
 
PHP: Sesiones
PHP: SesionesPHP: Sesiones
PHP: Sesiones
 
Responsabilidad de los Directores de Sistemas
Responsabilidad de los Directores de SistemasResponsabilidad de los Directores de Sistemas
Responsabilidad de los Directores de Sistemas
 

Similar a PHP Avanzado: PHP, XML y Servicios Web

Similar a PHP Avanzado: PHP, XML y Servicios Web (20)

Frameworks de templates y xml
Frameworks de templates y xmlFrameworks de templates y xml
Frameworks de templates y xml
 
Curso iniciacion-joomla-3.3-oklan
Curso iniciacion-joomla-3.3-oklanCurso iniciacion-joomla-3.3-oklan
Curso iniciacion-joomla-3.3-oklan
 
Materiales del curso de Symfony2
Materiales del curso de Symfony2Materiales del curso de Symfony2
Materiales del curso de Symfony2
 
Elementos de html5 y css3
Elementos de html5 y css3Elementos de html5 y css3
Elementos de html5 y css3
 
Dale Stamina A Tu Flex App Con Amfphp
Dale Stamina A Tu Flex App Con AmfphpDale Stamina A Tu Flex App Con Amfphp
Dale Stamina A Tu Flex App Con Amfphp
 
Joomla Curso Noviembre
Joomla Curso NoviembreJoomla Curso Noviembre
Joomla Curso Noviembre
 
Joomla! Curso Noviembre
Joomla! Curso NoviembreJoomla! Curso Noviembre
Joomla! Curso Noviembre
 
Joomla Curso Noviembre
Joomla Curso NoviembreJoomla Curso Noviembre
Joomla Curso Noviembre
 
Html5
Html5Html5
Html5
 
Integrando Flex Y Spring
Integrando Flex  Y SpringIntegrando Flex  Y Spring
Integrando Flex Y Spring
 
4 Guia Xhtm Lv2.1
4   Guia Xhtm Lv2.14   Guia Xhtm Lv2.1
4 Guia Xhtm Lv2.1
 
Curso Mu
Curso MuCurso Mu
Curso Mu
 
Joomladay Mallorca 2010 Templates Workshop
Joomladay Mallorca 2010 Templates WorkshopJoomladay Mallorca 2010 Templates Workshop
Joomladay Mallorca 2010 Templates Workshop
 
Semana 2 Arquitectura web y HTML 5
Semana 2   Arquitectura web y HTML 5Semana 2   Arquitectura web y HTML 5
Semana 2 Arquitectura web y HTML 5
 
Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...
Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...
Joomla!Day 2011 España - Taller desarrollo de plantillas Joomla! - Sergio Igl...
 
Luis html
Luis htmlLuis html
Luis html
 
Presentación1
Presentación1Presentación1
Presentación1
 
Introducción a php
Introducción a phpIntroducción a php
Introducción a php
 
Introducción a PHP5
Introducción a PHP5Introducción a PHP5
Introducción a PHP5
 
Tema4.pdf
Tema4.pdfTema4.pdf
Tema4.pdf
 

Último

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 

Último (12)

Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 

PHP Avanzado: PHP, XML y Servicios Web

  • 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