Java:
Lavorare con XML
Come fare:
Java fornisce API come DOM (Document Object Model), SAX (Simple API for XML) e StAX (Streaming API for XML) per lavorare con XML. Ecco un esempio DOM per analizzare un file XML:
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class XmlParser {
public static void main(String[] args) {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse("data.xml");
doc.getDocumentElement().normalize();
NodeList nodoLista = doc.getElementsByTagName("employee");
for (int i = 0; i < nodoLista.getLength(); i++) {
Element elemento = (Element) nodoLista.item(i);
System.out.println("Nome: " + elemento.getElementsByTagName("name").item(0).getTextContent());
System.out.println("Età: " + elemento.getElementsByTagName("age").item(0).getTextContent());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Supponiamo che data.xml
sia così:
<employees>
<employee>
<name>Jane Doe</name>
<age>30</age>
</employee>
<employee>
<name>John Doe</name>
<age>40</age>
</employee>
</employees>
L’output sarebbe:
Nome: Jane Doe
Età: 30
Nome: John Doe
Età: 40
Approfondimento
XML esiste dalla fine degli anni ‘90, fornendo un modo strutturato e flessibile per lo scambio di dati tra diversi sistemi. Anche se JSON è diventato più popolare per le nuove API web a causa della sua sintassi più semplice e della stretta integrazione con JavaScript, XML rimane ampiamente utilizzato negli ambienti aziendali, nei servizi web basati su SOAP e negli standard di documenti come Office Open XML per Microsoft Office.
Per quanto riguarda il parsing di XML in Java, l’API DOM è ottima per documenti più piccoli: è basata su alberi e consente un accesso completo alla struttura XML in memoria. Tuttavia, per file più grandi, può essere intensivo in termini di memoria. SAX e StAX sono più amichevoli della memoria, poiché sono basati su eventi e su flusso rispettivamente, ma possono essere meno comodi per navigare nelle strutture XML.
Per creare o modificare XML, Java fornisce anche i pacchetti javax.xml.transform e javax.xml.bind (JAXB). JAXB faceva parte di Java SE fino alla versione 10, in seguito è diventato una libreria separata a causa della rimozione dei moduli Java EE da Java SE. È un modo guidato dalle annotazioni per serializzare oggetti Java in XML e viceversa.
Vedi Anche
Consulta queste fonti correlate per saperne di più sul lavoro con XML in Java: