Exercicis XML

(*) elteuusuari correspon a la direcció de correu eltectrònic del centre, sense punts, fins a @itb.cat

Sumari

  1. Exercicis XML
    1. Exercicis
      1. RestaurantData
      2. RestaurantsByType
        1. InputOutput
      3. RecipesByIngredient
      4. SportTraker
      5. BarcelonaAccidentStats
        1. Output
      6. Extra-Selenium
        1. Gradle
        2. Main

Exercicis

RestaurantData

Fes un programa que llegeixi el següent xml amb informació de restaurant i l'imprimeixi per pantalla.

RestaurantsByType

Fes un programa que llegeixi el següent xml amb informació de restaurant i l'imprimeixi per pantalla els restaurants segons el tipus que indica l'usuari.

InputOutput

Quin tipus de restaurant vols?
> tapes
Bar Pasqual - Avinguda Diagonal 232 - Joan Martí
Tapitapes - Balmes 2 - Gustaf Michelin

RecipesByIngredient

Donat el següent xml de receptes fes un programa que pregunti un nom a l'usuari i que imprimeixi les receptes que tenen aquest ingredient ordenades per dificultat.

SportTraker

Fes un programa de consola que permeti a un esportista enregistrar els diferents entrenaments que fa en un xml.

BarcelonaAccidentStats

Els seguent fitxer zip conté dos fitxers en format csv amb detalls dels accidents a Barcelona del 2021 -es poden descarregar de la web open data de l'ajuntament de Barcelona.
Un dels documents incorpora el número de lesionats segons gravetat, el número de vehicles implicats i el punt d'impacte, l'altre conté la causalitat dels accidents.

Fes un programa que llegeixi els fitxers per imprimir les següents dades en el següent format (les dades que hi ha no es corresponen amb les dades dels fitxers)

Output

# Resum accidents 2021 Barcelona

## Totals
Número d'accidents: 1254
Número de victimes: 2486
Número de morts: 12

### Dies de la setmana amb més accidents
1. dijous: 187 accidents, 421 victimes, 1 morts
2. dilluns: 157 accidents, 325 victimes, 2 morts
3. dimecres: 49 accidents, 10 victimes, 1 morts

### Districtes amb més accidents
1. Trinitat: 187 accidents, 421 victimes, 1 morts
2. Sant Martí: 123 accidents, 421 victimes, 1 morts
3. Ciutat Vella: 89 accidents, 421 victimes, 1 morts

### Causes amb més accidents
1. Alcoholèmia: 187 accidents, 421 victimes, 1 morts
2. Excés de velocitat: 100 accidents, 421 victimes, 1 morts
3. No hi ha causa mediata: 50 accidents, 421 victimes, 1 morts

Extra-Selenium

La llibreria Selenium ens permet obrir un navegador web i entrar a una pàgina web, llegir-ne el contingut, simular clics.
Això es pot usar per fer testos de pàgines web, automatització de tasques, …

A continuació tens també un petit exemple:

Gradle

dependencies {
    implementation("org.seleniumhq.selenium:selenium-java:4.1.1")
    implementation("io.github.bonigarcia:webdrivermanager:5.0.3")
}

Main

fun main(){
    WebDriverManager.firefoxdriver().setup()
    //    WebDriverManager.chromedriver().setup()
    val driver = FirefoxDriver()
//    val driver = ChromeDriver()

    driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
    driver.get("https://www.ara.cat/");

    val elements = driver.findElements(By.cssSelector(".title-contain h2"))
    elements.forEach{
        println(it.text)
    }
}

Mira't la documentació i fes algunes proves:

https://www.selenium.dev/documentation/webdriver/getting_started/