Java:
Å jobbe med XML

Hvordan:

Java tilbyr API-er som DOM (Document Object Model), SAX (Simple API for XML) og StAX (Streaming API for XML) for å jobbe med XML. Her er et DOM-eksempel for å parse en XML-fil:

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 nodeList = doc.getElementsByTagName("employee");
            
            for (int i = 0; i < nodeList.getLength(); i++) {
                Element element = (Element) nodeList.item(i);
                System.out.println("Navn: " + element.getElementsByTagName("name").item(0).getTextContent());
                System.out.println("Alder: " + element.getElementsByTagName("age").item(0).getTextContent());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Anta at data.xml ser slik ut:

<employees>
    <employee>
        <name>Jane Doe</name>
        <age>30</age>
    </employee>
    <employee>
        <name>John Doe</name>
        <age>40</age>
    </employee>
</employees>

Utskriften vil være:

Navn: Jane Doe
Alder: 30
Navn: John Doe
Alder: 40

Dypdykk

XML har vært rundt siden slutten av 90-tallet og tilbyr en strukturert og fleksibel måte å utveksle data på tvers av forskjellige systemer. Selv om JSON har blitt mer populært for nye web-API-er på grunn av sin enklere syntaks og tett integrasjon med JavaScript, forblir XML mye brukt i bedriftsmiljøer, SOAP-baserte webtjenester og dokumentstandarder som Office Open XML for Microsoft Office.

Når det kommer til parsing av XML i Java, er DOM-API-en flott for mindre dokumenter: den er basert på et tre og gir full tilgang til XML-strukturen i minnet. Imidlertid kan den være minnekrevende for større filer. SAX og StAX er mer minnevennlige, da de er hendelsesdrevne og strømbaserte henholdsvis, men de kan være mindre praktiske for å navigere XML-strukturer.

For å opprette eller modifisere XML, tilbyr Java også javax.xml.transform og javax.xml.bind (JAXB)-pakkene. JAXB var en del av Java SE frem til versjon 10, etterpå ble det et separat bibliotek på grunn av fjerningen av Java EE-moduler fra Java SE. Det er en annotasjonsdrevet måte å serialisere Java-objekter til XML og omvendt på.

Se Også

Sjekk ut disse relaterte kildene for mer om å jobbe med XML i Java: