XML/Praca z interfejsami API XML
DOM (Document Object Model) i SAX (Simple API for XML)
edytujDOM 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
edytujAby 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
edytujAby 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.