Ursprünglich war die XML-Sprache nur als Ersatz für die HTML-Sprache gedacht. Mit der weiteren Entwicklung und Verbesserung der Sprache entdecken die Menschen jedoch zunehmend ihre Vorteile: wie erweiterbare Auszeichnungssprache und strenge Syntaxbestimmungen Aussagekräftiges Markup, die Trennung von Inhaltsspeicherung und -präsentation und andere Vorteile machten die Sprache vom Tag ihrer Geburt an brillant. Die XML-Sprache ist in eine Phase rasanter Entwicklung eingetreten, nachdem sie zum W3C-Standard geworden ist. Natürlich haben auch große Technologiehersteller Java als Entwicklungstechnologie in der Softwareindustrie schnell bevorzugt Als Reaktion darauf sind verschiedene Tools zur XML-Unterstützung entstanden. In diesem Artikel werden verschiedene gängige Technologien zur XML-Verarbeitung in Java vorgestellt. Ich hoffe, dass er für Sie hilfreich sein wird.
Über welche hervorragenden Klassenbibliotheken und Tools verfügt Java, um Programmierern die Verarbeitung von XML zu erleichtern?
Eine Einführung in die drei XML-Parsing-Methoden: das berühmte DOM
Es ist keine Übertreibung zu sagen, dass DOM die W3C-Standard-API für die Verarbeitung von XML ist. Es ist die Grundlage für viele andere Standards im Zusammenhang mit der XML-Verarbeitung, nicht nur für Java, sondern auch für andere Sprachen wie Javascript, PHP. MS.NET usw. Dieser Standard ist zur am weitesten verbreiteten XML-Verarbeitungsmethode geworden. Um immer leistungsfähigere Funktionen bereitzustellen, verfügt Java natürlich über viele direkte Erweiterungstoolklassen für DOM, wie z. B. JDOM, DOM4J usw., die vielen Java-Programmierern bekannt sind Sie sind im Grunde Erweiterungen der DOM-Schnittstellenfunktionen und behalten bei Aufgrund der Eigenschaften der API beherrschen viele ursprüngliche DOM-Programmierer die Verwendung der anderen beiden ohne Hindernisse. Die intuitive und einfach zu bedienende Methode macht sie bei den meisten Java-Programmierern sehr beliebt.
Grünes und umweltfreundliches SAX
Das Aufkommen von SAX hat seine besonderen Anforderungen. Warum gilt es als umweltfreundlich und umweltfreundlich? Dies liegt daran, dass SAX die geringsten Systemressourcen und die schnellste Analysemethode benötigt, um die XML-Verarbeitung zu unterstützen. Aber die damit verbundenen umständlichen Suchmethoden bereiten Programmierern auch viele Probleme und verursachen oft Kopfschmerzen. Gleichzeitig sorgt die Unterstützung der XPath-Abfragefunktion dafür, dass die Leute es lieben und hassen.
Der obskure Digester: JavaBeanisierung von XML
Digester ist ein Open-Source-Projekt der Apache Foundation. Das Verständnis des Autors stammt aus der Forschung zum Struts-Framework. Gibt es viele Programmierer, die das Design wichtiger Open-Source-Frameworks verstehen oder sogar selbst ein leistungsstarkes Framework schreiben möchten? Sie werden auf ein solches Problem stoßen: Welche Technologie wird am unteren Rand des Frameworks verwendet, um diese verschiedenen Framework-Konfigurationsdateien zu analysieren, die mit der XML-Sprache gekennzeichnet sind? Das Parsen von DOM ist zeitaufwändig, das Parsen von SAX ist zu umständlich und der Systemaufwand für jedes Parsen ist zu hoch. Daher dachten alle, dass zum Laden dieser Informationen JavaBeans verwendet werden sollten, die der XML-Struktur entsprechen, und so entstand Digester. Sein Aufkommen bringt eine praktische Bedienschnittstelle für die Konvertierung von XML in JavaBean-Objekte mit sich, sodass ähnlichere Anforderungen eine perfektere Lösung erhalten können und Programmierer solche umständlichen Parsing-Prozeduren nicht mehr selbst implementieren müssen. Gleichzeitig hat SUN auch die XML- und JavaBean-Konvertierungstoolklasse JAXB eingeführt, über die sich interessierte Leser selbst informieren können.
Schauen wir uns ein Beispiel für die Java-Dom-Analyse von XML an:
import java.io.*; import org.xml.sax.SAXException; import javax.xml.parsers.*; public static void main(String[] args) { DocumentBuilderFactory Factory = DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder = Factory.newDocumentBuilder(); builder.parse(new File("E://work//test//xml1.xml")); NodeList nl = doc.getElementsByTagName("book"); for (int i = 0; i < nl.getLength( ); i++) { System.out.println(nl.item(i).getAttributes().item(0)); System.out.println(doc.getElementsByTagName("title").item(i) .getFirstChild().getNodeValue()); System.out.println(doc.getElementsByTagName("title").item(i) .getAttributes ().item(0)); System.out.println(doc.getElementsByTagName("author").item(i) .getFirstChild().getNodeValue()); System.out.println(doc.getElementsByTagName("year").item(i) .getFirstChild ().getNodeValue()); System.out.println(doc.getElementsByTagName("price").item(i) .getFirstChild().getNodeValue()); System.out.println(} } } Catch (ParserConfigurationException e) { e.printStackTrace() ; } Catch (SAXException e) { e.printStackTrace( } Catch (IOException e) { e.printStackTrace(); } } }
xml:
<bookstore> <book Category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price > </book> <book Category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29,99 </Preis> </book> <book Category="WEB"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95< /price> </book> </bookstore>
Ergebnis:
Category="COOKING"Everyday Italianlang="en"Giada De Laurentiis200530.00category="CHILDREN"Harry Potterlang="en"J K. Rowling200529.99category="WEB"Learning XMLlang="en"Erik T. Ray200339.95