venerdì 11 aprile 2025

TypeScript leggere un file XML

Può capitare la necessità di leggere o gestire informazioni da un file XML dal linguaggio di programmazione TypeScript.
Tramite le classi della libreria "HttpClient" possiamo gestire i file XML.

Supponiamo di avere il seguente file XML , e che di desideriamo leggere i vari valori.

XML
<dati>
  <nodo>Valore 1</nodo>
  <nodo>Valore 2</nodo>
  <nodo>Valore 3</nodo>
</dati>

Inseriamo nel progetto, il riferimento alla libreria "HttpClient", in altro sopra ad ogni dichiarazione, dove si trovano gli import, inseriamo la seguente riga di codice.

TypeScript

import {HttpClient } from '@angular/common/http';

Nel costruttore, si crea una variabile che fa riferimento alla classe httpClient.

TypeScript

 

constructor(

    private http: HttpClient

) { }

 

 Scriviamo una funzione che va a leggere i vari nodi, di seguito il codice che tramite le classi "Document"  e "DOMParser" gestiamo i file XML.

Di seguito si riporta il frammento di codice delle suddette operazioni.


TypeScript

leggiFileXML(): void {

    const url = 'assets/dati.xml'; // Percorso del file XML (nella cartella assets)

 

    this.http.get(url, { responseType: 'text' }).subscribe({

      next: (data) => {

        const parser = new DOMParser();

        const xmlDoc = parser.parseFromString(data, 'application/xml');

 

        //Legge un nodo specifico

        const elementi = xmlDoc.getElementsByTagName('nodo');

        for (let i = 0; i < elementi.length; i++) {

          console.log(elementi[i].textContent);

        }

      },

      error: (error) => {

        console.error('Si è verificato un errore:', error);

      }

    });

  }

 

Va ricordato che il file XML è stato aggiunto nella cartella "Assets" per una migliore gestione.


Di seguito il codice per richiamare la funzione.

TypeScript

 ngOnInit(): void {

    this.leggiFileXML();

}

 

Nessun commento: