Estás en:   ArielOrtiz.info > Desarrollo de aplicaciones web > Práctica 4: Utilizando XML

Práctica 4: Utilizando XML

Objetivos

Durante esta práctica, los alumnos serán capaces de:

Esta actividad promueve las siguientes habilidades, valores y actitudes: análisis y síntesis, capacidad de resolver problemas, creatividad, y uso eficiente de la informática y las telecomunicaciones.

Descripción de la actividad

Esta práctica puede ser elaborada de manera individual o en parejas.

Tus archivos fuente de JavaScript deben comenzar con un comentario que contenga el título de la práctica, la fecha y los datos personales de los autores (nombre y matrícula). Por ejemplo:

/*----------------------------------------------------------
 * Práctica 4: Utilizando XML
 * Fecha: 13-Sep-2016
 * Autores:
 *           A01166611 Pepper Pots
 *           A01160611 Anthony Stark
 *----------------------------------------------------------*/
  1. Instala el módulo xml2js de Node. Desde la terminal teclea:

    sudo npm install xml2js

    Revisa la documentación de xml2js para ver como usar este módulo.

  2. Crea un directorio llamado practica4. Coloca en este directorio el siguiente documento XML llamado movies.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <!-- Archivo: movies.xml -->
    
    <movies>
    
        <!-- Esta es una de las mejores películas de todos los tiempos. -->
        <film name="The Godfather" year="1972">
            <cast>Marlon Brando</cast>
            <cast>Al Pacino</cast>
            <cast>Diane Keaton</cast>
            <director>Francis Ford Coppola</director>
        </film>
    
        <!-- Esta es la película más taquillera del 2008. -->
        <film name="The Dark Knight" year="2008">
            <cast>Christian Bale</cast>
            <director>Christopher Nolan</director>
            <cast>Maggie Gyllenhaal</cast> <!-- ¿Dónde quedó Katie Holmes? -->
            <cast>Heath Ledger</cast>
            <cast>Michael Caine</cast>
            <cast>Gary Oldman</cast>
            <cast>Morgan Freeman</cast>
        </film>
    
        <film name="The Mission" year="1986">
            <!-- La música fue escrita por Ennio Morricone -->
            <director>Roland Joffé</director>
            <cast>Robert De Niro</cast>
            <cast>Jeremy Irons</cast>
        </film>
    
        <film name="Black Swan" year="2010">
            <director>
                Darren Aronofsky
            </director>
            <cast>
                Natalie Portman
            </cast>
            <cast>
                Mila Kunis
            </cast>
            <cast>
                Vincent Cassel
            </cast>
            <cast>
                Winona Ryder
            </cast>
        </film>
    
        <film name="The Hobbit: An Unexpected Journey" year="2012">
        <director>Peter Jackson</director><cast>Ian McKellen</cast>
        <cast>Martin Freeman</cast><cast>Andy Serkis</cast></film>
    
        <film name="THX 1138" year="1971"/>
    
        <film name="The Avengers" year="2012">
            <director>Joss Whedon</director>
            <cast>Robert Downey Jr. <!-- Iron Man --></cast>
            <cast>Scarlett Johansson <!-- Black Widow --></cast>
            <cast>Chris Evans <!-- Captain America --></cast>
            <cast>Samuel L. Jackson <!-- Nick Fury --></cast>
            <cast>Chris Hemsworth <!-- Thor --></cast>
            <cast>Mark Ruffalo <!-- The Incredible Hulk --></cast>
        </film>
    
    </movies>
    
  3. Escribe un programa en Node.js llamado peliculas.js que lea y realice el parseo del archivo movies.xml y que imprima en la salida estándar todas las películas ahí contenidas de la manera como se muestra a continuación:

    The Godfather (1972), director: Francis Ford Coppola
    The Dark Knight (2008), director: Christopher Nolan
    The Mission (1986), director: Roland Joffé
    Black Swan (2010), director: Darren Aronofsky
    The Hobbit: An Unexpected Journey (2012), director: Peter Jackson
    THX 1138 (1971)
    The Avengers (2012), director: Joss Whedon
    

    Notar la salida del caso especial que ocurre cuando una película no tiene información del director (THX 1138).

  4. Escribe otro programa en Node.js llamado actores.js que lea y realice el parseo del archivo movies.xml y que imprima en la salida estándar todas los actores ahí contenidos de la manera como se muestra a continuación:

    The Godfather
      Marlon Brando
      Al Pacino
      Diane Keaton
    
    The Dark Knight
      Christian Bale
      Maggie Gyllenhaal
      Heath Ledger
      Michael Caine
      Gary Oldman
      Morgan Freeman
    
    The Mission
      Robert De Niro
      Jeremy Irons
    
    Black Swan
      Natalie Portman
      Mila Kunis
      Vincent Cassel
      Winona Ryder
    
    The Hobbit: An Unexpected Journey
      Ian McKellen
      Martin Freeman
      Andy Serkis
    
    THX 1138
    
    The Avengers
      Robert Downey Jr.
      Scarlett Johansson
      Chris Evans
      Samuel L. Jackson
      Chris Hemsworth
      Mark Ruffalo
    
    

    Notar que hay una línea en blanco después de cada grupo de actores de una misma película.

¿Qué se debe entregar?

Escribe el reporte de la práctica tal como se detalla en el documento Reportes de prácticas. El nombre del archivo fuente de AsciiDoctor debe ser reporte_practica4.adoc. A partir del código fuente de AsciiDoctor debes generar el archivo PDF correspondiente. Dicho archivo se debe llamar reporte_practica4.pdf. Coloca estos archivos junto cualquier otro archivo adicional que se requiera para generar el reporte dentro del directorio practica4.

Crea un archivo tarball con todo el contenido del directorio practica4. Nombra a este archivo practica4.tgz. Este archivo se puede crear desde la terminal tecleando lo siguiente (asegúrate que te encuentres en el mismo nivel que el directorio practica4):

tar czf practica4.tgz practica4

✔ Instrucciones para subir archivo

Para entregar el archivo practica4.tgz, ingresa los siguientes datos:

Solicitar NIP

Si la práctica fue desarrollada en pareja, basta que solo uno de los miembros la entregue. No se aceptan prácticas por ningún otro medio.

Fecha límite: Martes, 13 de septiembre.

Evaluación

Esta actividad será evaluada usando los siguientes criterios:

50% Implementación de los requerimientos.
50% Reporte de la práctica de laboratorio.
DA El programa y/o reporte es un plagio.