Przejdź do zawartości

XML/Praca z interfejsami API XML

Z Wikibooks, biblioteki wolnych podręczników.
< XML

DOM (Document Object Model) i SAX (Simple API for XML)

[edytuj]

DOM to interfejs API, który reprezentuje dokument XML jako strukturę drzewiastą węzłów i zapewnia metody uzyskiwania dostępu i modyfikowania węzłów. W DOM cały dokument XML jest ładowany do pamięci i analizowany jako struktura drzewa, co ułatwia nawigację i modyfikację dokumentu. Jednak w przypadku dużych dokumentów może to wymagać dużej ilości pamięci.

SAX to interfejs API sterowany zdarzeniami, który sekwencyjnie odczytuje dokument XML i generuje zdarzenia, gdy napotyka różne elementy i atrybuty. Dzięki SAX dokument nie jest ładowany do pamięci jako całości, co czyni go bardziej wydajnym w przypadku dużych dokumentów. Jednak nawigacja i modyfikacja dokumentu za pomocą SAX może być trudniejsza.

Parsowanie XML z DOM i SAX

[edytuj]

Aby przeanalizować XML za pomocą DOM, możesz użyć parsera, takiego jak JAXP (Java API for XML Processing) i utworzyć obiekt Document. Na przykład:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File("example.xml"));

Aby przeanalizować XML za pomocą SAX, możesz zaimplementować ContentHandler i użyć parsera, takiego jak SAXParser. Na przykład:

SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
parser.parse(new File("example.xml"), new MyContentHandler());

Modyfikowanie XML za pomocą DOM

[edytuj]

Aby zmodyfikować XML za pomocą DOM, możesz poruszać się po strukturze drzewa węzłów i modyfikować atrybuty i wartości elementów. Na przykład, aby dodać nowy element do dokumentu:

Element newElement = document.createElement("newElement");
newElement.setAttribute("attributeName", "attributeValue");
newElement.setTextContent("elementValue");
document.getDocumentElement().appendChild(newElement);

Aby usunąć element z dokumentu:

Element elementToRemove = document.getElementById("elementId");
elementToRemove.getParentNode().removeChild(elementToRemove);

Aby zmodyfikować atrybut elementu:

Element elementToModify = document.getElementById("elementId");
elementToModify.setAttribute("attributeName", "newAttributeValue");

Oto kilka podstawowych przykładów pracy z interfejsami API XML. Istnieje wiele bardziej zaawansowanych funkcji i technik, które można poznać w miarę poznawania XML.