Java:
XML:n käsittely

Kuinka:

Java tarjoaa API:ja kuten DOM (Document Object Model), SAX (Simple API for XML) ja StAX (Streaming API for XML) XML:n käsittelyyn. Tässä on DOM-esimerkki XML-tiedoston jäsentämiseksi:

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("Nimi: " + element.getElementsByTagName("name").item(0).getTextContent());
                System.out.println("Ikä: " + element.getElementsByTagName("age").item(0).getTextContent());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Oletetaan, että data.xml näyttää tältä:

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

Tuloste olisi:

Nimi: Jane Doe
Ikä: 30
Nimi: John Doe
Ikä: 40

Syväsukellus

XML on ollut olemassa 90-luvun lopulta lähtien, tarjoten strukturoitua ja joustavaa tapaa vaihtaa dataa eri järjestelmien välillä. Vaikka JSON on tullut suositummaksi uusien web-rajapintojen kanssa sen yksinkertaisemman syntaksin ja tiiviin integraation JavaScriptin kanssa vuoksi, XML on silti laajasti käytössä yritysympäristöissä, SOAP-pohjaisissa web-palveluissa ja dokumenttistandardeissa kuten Office Open XML Microsoft Officelle.

Kun kyse on XML:n jäsentämisestä Javassa, DOM API on mainio pienempien dokumenttien kanssa: se on puupohjainen ja antaa täyden pääsyn XML-rakenteeseen muistissa. Kuitenkin suurempien tiedostojen kohdalla se voi olla muistintehokas. SAX ja StAX ovat muistin kannalta ystävällisempiä, koska ne ovat tapahtumaohjattuja ja suoratoistoon perustuvia vastaavasti, mutta ne voivat olla vähemmän käteviä XML-rakenteiden navigoinnissa.

XML:n luomiseen tai muokkaamiseen Java tarjoaa myös javax.xml.transform ja javax.xml.bind (JAXB) -paketit. JAXB oli osa Java SE:ta versioon 10 asti, sen jälkeen siitä tuli erillinen kirjasto Java EE -moduulien poiston myötä Java SE:stä. Se on annotaatioon perustuva tapa serialisoida Java-objektit XML:ksi ja päinvastoin.

Katso myös

Tutustu näihin liittyviin lähteisiin saadaksesi lisätietoa XML:n kanssa työskentelystä Javassa: