JAVA XML - Interviewfragen

Liebe Leser, diese JAVA based XML Parsing Interview Questions wurden speziell entwickelt, um Sie mit der Art der Fragen vertraut zu machen, die Sie während Ihres Interviews zum Thema haben können JAVA based XML Parsing. Nach meiner Erfahrung planen gute Interviewer kaum, während Ihres Interviews eine bestimmte Frage zu stellen. Normalerweise beginnen Fragen mit einem Grundkonzept des Themas und werden später auf der Grundlage weiterer Diskussionen und Ihrer Antworten fortgesetzt.

XML steht für Extensible Markup Language.

Im Folgenden sind die Vorteile aufgeführt, die XML bietet:

  • Technology agnostic- Als einfacher Text ist XML technologieunabhängig. Es kann von jeder Technologie zur Datenspeicherung und -übertragung verwendet werden.

  • Human readable- XML ​​verwendet ein einfaches Textformat. Es ist menschlich lesbar und verständlich.

  • Extensible - In XML können benutzerdefinierte Tags sehr einfach erstellt und verwendet werden.

  • Allow Validation - Mit XSD können DTD- und XML-Strukturen einfach validiert werden.

Im Folgenden sind die Nachteile der XML-Verwendung aufgeführt:

  • Redundant Syntax - Normalerweise enthält eine XML-Datei viele sich wiederholende Begriffe.

  • Verbose- Aufgrund der ausführlichen Sprache erhöht die Größe der XML-Datei die Übertragungs- und Speicherkosten.

Das Parsen von XML bezieht sich auf das Durchlaufen eines XML-Dokuments, um auf Daten zuzugreifen oder Daten auf die eine oder andere Weise zu ändern.

XML Parser bietet eine Möglichkeit, auf Daten in einem XML-Dokument zuzugreifen oder diese zu ändern. Java bietet mehrere Optionen zum Parsen von XML-Dokumenten.

Im Folgenden finden Sie verschiedene Arten von Parsern, die häufig zum Parsen von XML-Dokumenten verwendet werden.

  • Dom Parser - Analysiert das Dokument, indem der gesamte Inhalt des Dokuments geladen und der vollständige Suchbaum im Speicher erstellt wird.

  • SAX Parser- Analysiert das Dokument nach ereignisbasierten Triggern. Lädt nicht das gesamte Dokument in den Speicher.

  • JDOM Parser - Analysiert das Dokument auf ähnliche Weise wie der DOM-Parser, jedoch auf einfachere Weise.

  • StAX Parser - Analysiert das Dokument auf ähnliche Weise wie der SAX-Parser, jedoch auf effizientere Weise.

  • XPath Parser - Analysiert das XML basierend auf dem Ausdruck und wird häufig in Verbindung mit XSLT verwendet.

  • DOM4J Parser - Eine Java-Bibliothek zum Parsen von XML, XPath und XSLT mithilfe des Java Collections Framework bietet Unterstützung für DOM, SAX und JAXP.

DOM steht für Document Object Model.

DOM steht für Document Object Model und ist eine offizielle Empfehlung des World Wide Web Consortium (W3C). Es definiert eine Schnittstelle, über die Programme auf Stil, Struktur und Inhalt von XML-Dokumenten zugreifen und diese aktualisieren können. XML-Parser, die das DOM unterstützen, implementieren diese Schnittstelle.

Sie sollten einen DOM-Parser verwenden, wenn -

  • Sie müssen viel über die Struktur eines Dokuments wissen

  • Sie müssen Teile des Dokuments verschieben (möglicherweise möchten Sie beispielsweise bestimmte Elemente sortieren).

  • Sie müssen die Informationen im Dokument mehrmals verwenden

Wenn Sie ein XML-Dokument mit einem DOM-Parser analysieren, erhalten Sie eine Baumstruktur zurück, die alle Elemente Ihres Dokuments enthält. Das DOM bietet eine Vielzahl von Funktionen, mit denen Sie den Inhalt und die Struktur des Dokuments untersuchen können.

Das DOM ist eine gemeinsame Schnittstelle zum Bearbeiten von Dokumentstrukturen. Eines der Entwurfsziele besteht darin, dass Java-Code, der für einen DOM-kompatiblen Parser geschrieben wurde, ohne Änderungen auf jedem anderen DOM-kompatiblen Parser ausgeführt werden sollte.

Das DOM definiert mehrere Java-Schnittstellen. Hier sind die häufigsten Schnittstellen -

  • Node - Der Basisdatentyp des DOM.

  • Element - Die überwiegende Mehrheit der Objekte, mit denen Sie sich befassen, sind Elemente.

  • Attr Repräsentiert ein Attribut eines Elements.

  • Text Der tatsächliche Inhalt eines Elements oder Attr.

  • DocumentRepräsentiert das gesamte XML-Dokument. Ein Dokumentobjekt wird häufig als DOM-Baum bezeichnet.

Wenn Sie mit dem DOM arbeiten, gibt es verschiedene Methoden, die Sie häufig verwenden werden -

  • Document.getDocumentElement() - Gibt das Stammelement des Dokuments zurück.

  • Node.getFirstChild() - Gibt das erste Kind eines bestimmten Knotens zurück.

  • Node.getLastChild() - Gibt das letzte Kind eines bestimmten Knotens zurück.

  • Node.getNextSibling() - Diese Methoden geben das nächste Geschwister eines bestimmten Knotens zurück.

  • Node.getPreviousSibling() - Diese Methoden geben das vorherige Geschwister eines bestimmten Knotens zurück.

  • Node.getAttribute(attrName) - Gibt für einen bestimmten Knoten das Attribut mit dem angeforderten Namen zurück.

Ja! Mit dem DOM-Parser können wir ein XML-Dokument analysieren, ändern oder erstellen.

SAX steht für Simple API for XML.

SAX Parser ist ein ereignisbasierter Parser für XML-Dokumente.

SAX (die einfache API für XML) ist ein ereignisbasierter Parser für XML-Dokumente. Im Gegensatz zu einem DOM-Parser erstellt ein SAX-Parser keinen Analysebaum. SAX ist eine Streaming-Schnittstelle für XML. Dies bedeutet, dass Anwendungen, die SAX verwenden, Ereignisbenachrichtigungen über das XML-Dokument erhalten, das als Element und Attribut zu einem Zeitpunkt in sequenzieller Reihenfolge verarbeitet wird, beginnend am Anfang des Dokuments und endend mit dem Schließen des ROOT-Element.

Sie sollten einen SAX-Parser verwenden, wenn -

  • Sie können das XML-Dokument linear von oben nach unten verarbeiten

  • Das Dokument ist nicht tief verschachtelt

  • Sie verarbeiten ein sehr großes XML-Dokument, dessen DOM-Baum zu viel Speicher verbrauchen würde. Typische DOM-Implementierungen verwenden zehn Byte Speicher, um ein Byte XML darzustellen

  • Das zu lösende Problem betrifft nur einen Teil des XML-Dokuments

  • Daten sind verfügbar, sobald sie vom Parser angezeigt werden. Daher funktioniert SAX gut für ein XML-Dokument, das über einen Stream eingeht

  • Wir haben keinen zufälligen Zugriff auf ein XML-Dokument, da es nur vorwärts weitergeleitet wird

  • Wenn Sie die vom Parser gesehenen Daten verfolgen oder die Reihenfolge der Elemente ändern müssen, müssen Sie den Code schreiben und die Daten selbst speichern

Die ContentHandler-Schnittstelle gibt die Rückrufmethoden an, mit denen der SAX-Parser ein Anwendungsprogramm über die Komponenten des XML-Dokuments benachrichtigt, die er gesehen hat.

  • void startDocument() - Wird am Anfang eines Dokuments aufgerufen.

  • void endDocument() - Wird am Ende eines Dokuments aufgerufen.

  • void startElement(String uri, String localName, String qName, Attributes atts) - Wird am Anfang eines Elements aufgerufen.

  • void endElement(String uri, String localName,String qName) - Wird am Ende eines Elements aufgerufen.

  • void characters(char[] ch, int start, int length) - Wird aufgerufen, wenn Zeichendaten gefunden werden.

  • void ignorableWhitespace( char[] ch, int start, int length) - Wird aufgerufen, wenn eine DTD vorhanden ist und ignorierbare Leerzeichen auftreten.

  • void processingInstruction(String target, String data) - Wird aufgerufen, wenn eine Verarbeitungsanweisung erkannt wird.

  • void setDocumentLocator(Locator locator)) - Bietet einen Locator, mit dem Positionen im Dokument identifiziert werden können.

  • void skippedEntity(String name) - Wird aufgerufen, wenn eine nicht aufgelöste Entität gefunden wird.

  • void startPrefixMapping(String prefix, String uri) - Wird aufgerufen, wenn eine neue Namespace-Zuordnung definiert wird.

  • void endPrefixMapping(String prefix) - Wird aufgerufen, wenn eine Namespace-Definition ihren Gültigkeitsbereich beendet.

Attributes Interface gibt Methoden zur Verarbeitung der mit einem Element verbundenen Attribute an.

  • int getLength() - Gibt die Anzahl der Attribute zurück.

  • String getQName(int index)

  • String getValue(int index)

  • String getValue(String qname)

Nein! Mit dem SAX-Parser können wir nur ein XML-Dokument analysieren oder ändern.

JDOM ist eine Open Source-Bibliothek auf Java-Basis zum Parsen von XML-Dokumenten und in der Regel eine Java-API für Entwickler.

Es ist Java-optimiert und verwendet Java-Sammlungen wie List und Arrays. Es funktioniert mit DOM- und SAX-APIs und kombiniert das Beste aus beiden. Es hat einen geringen Speicherbedarf und ist fast so schnell wie SAX.

Sie sollten einen JDOM-Parser verwenden, wenn -

  • Sie müssen viel über die Struktur eines Dokuments wissen.

  • Sie müssen Teile des Dokuments verschieben (möglicherweise möchten Sie beispielsweise bestimmte Elemente sortieren).

  • Sie müssen die Informationen im Dokument mehrmals verwenden.

  • Sie sind ein Java-Entwickler und möchten das für Java optimierte Parsen von XML nutzen.

Wenn Sie ein XML-Dokument mit einem JDOM-Parser analysieren, erhalten Sie die Flexibilität, eine Baumstruktur wiederherzustellen, die alle Elemente Ihres Dokuments enthält, ohne den Speicherbedarf der Anwendung zu beeinträchtigen. Das JDOM bietet eine Vielzahl von Dienstprogrammfunktionen, mit denen Sie den Inhalt und die Struktur des Dokuments untersuchen können, falls das Dokument gut strukturiert ist und seine Struktur bekannt ist.

JDOM bietet Java-Entwicklern Flexibilität und einfache Wartbarkeit des XML-Parsing-Codes. Es ist leicht und schnelle API.

Das JDOM definiert mehrere Java-Klassen. Hier sind die häufigsten Klassen -

  • Document- Repräsentiert das gesamte XML-Dokument. Ein Dokumentobjekt wird häufig als DOM-Baum bezeichnet.

  • Element- Repräsentiert ein XML-Element. Das Elementobjekt verfügt über Methoden zum Bearbeiten seiner untergeordneten Elemente, seines Texts, seiner Attribute und seiner Namespaces.

  • AttributeRepräsentiert ein Attribut eines Elements. Das Attribut verfügt über eine Methode zum Abrufen und Festlegen des Attributwerts. Es hat übergeordneten und Attributtyp.

  • Text Repräsentiert den Text des XML-Tags.

  • Comment Repräsentiert die Kommentare in einem XML-Dokument.

Wenn Sie mit dem JDOM arbeiten, gibt es verschiedene Methoden, die Sie häufig verwenden werden:

  • SAXBuilder.build(xmlSource) - Erstellen Sie das JDOM-Dokument aus der XML-Quelle.

  • Document.getRootElement() - Holen Sie sich das Stammelement des XML.

  • Element.getName() - Rufen Sie den Namen des XML-Knotens ab.

  • Element.getChildren() - Holen Sie sich alle direkten untergeordneten Knoten eines Elements.

  • Node.getChildren(Name) - Holen Sie sich alle direkten untergeordneten Knoten mit einem bestimmten Namen.

  • Node.getChild(Name) - Holen Sie sich den ersten untergeordneten Knoten mit dem angegebenen Namen.

Ja! Mit dem JDOM-Parser können wir ein XML-Dokument analysieren, ändern und erstellen.

StAX ist eine JAVA-basierte API zum Parsen von XML-Dokumenten auf ähnliche Weise wie der SAX-Parser, aber StAX ist eine PULL-API, während SAX eine PUSH-API ist. Dies bedeutet, dass im Fall eines StAX-Parsers die Clientanwendung den StAX-Parser auffordern muss, Informationen aus XML abzurufen, wann immer dies erforderlich ist. Im Falle eines SAX-Parsers muss die Clientanwendung Informationen abrufen, wenn der SAX-Parser die Clientanwendung benachrichtigt, dass Informationen verfügbar sind.

Ja! Mit dem StAX-Parser können wir ein XML-Dokument analysieren, ändern und erstellen.

Ja! StAX ist eine PULL-API.

Sie sollten einen StAX-Parser verwenden, wenn -

  • Sie können das XML-Dokument linear von oben nach unten verarbeiten.

  • Das Dokument ist nicht tief verschachtelt.

  • Sie verarbeiten ein sehr großes XML-Dokument, dessen DOM-Baum zu viel Speicher verbrauchen würde. Typische DOM-Implementierungen verwenden zehn Byte Speicher, um ein Byte XML darzustellen.

  • Das zu lösende Problem betrifft nur einen Teil des XML-Dokuments.

  • Daten sind verfügbar, sobald sie vom Parser angezeigt werden. Daher funktioniert StAX gut für ein XML-Dokument, das über einen Stream eingeht.

  • Wir haben keinen zufälligen Zugriff auf ein XML-Dokument, da es nur vorwärts weitergeleitet wird

  • Wenn Sie die vom Parser gesehenen Daten verfolgen oder die Reihenfolge der Elemente ändern müssen, müssen Sie den Code schreiben und die Daten selbst speichern

Diese Klasse bietet einen Iterator für Ereignisse, mit dem Ereignisse beim Parsen des XML-Dokuments durchlaufen werden können.

  • StartElement asStartElement() - wird verwendet, um den Wert und die Attribute des Elements abzurufen.

  • EndElement asEndElement() - am Ende eines Elements aufgerufen.

  • Characters asCharacters() - kann verwendet werden, um Zeichen wie CDATA, Leerzeichen usw. zu erhalten.

Diese Schnittstelle gibt Methoden zum Erstellen eines Ereignisses an.

  • add(Event event) - Fügen Sie XML Ereignisse hinzu, die Elemente enthalten.

Diese Klasse bietet einen Iterator für Ereignisse, mit dem Ereignisse beim Parsen des XML-Dokuments durchlaufen werden können

  • int next() - wird verwendet, um das nächste Ereignis abzurufen.

  • boolean hasNext() - wird verwendet, um zu überprüfen, ob weitere Ereignisse vorhanden sind oder nicht

  • String getText() - wird verwendet, um den Text eines Elements abzurufen

  • String getLocalName() - wird verwendet, um den Namen eines Elements abzurufen

Diese Schnittstelle gibt Methoden zum Erstellen eines Ereignisses an.

  • writeStartElement(String localName) - Startelement mit Vornamen hinzufügen.

  • writeEndElement(String localName) - Endelement des Vornamens hinzufügen.

  • writeAttribute(String localName, String value) - Attribut in ein Element schreiben.

Der XPath ist eine offizielle Empfehlung des World Wide Web Consortium (W3C). Es definiert eine Sprache zum Suchen von Informationen in einer XML-Datei. Es wird verwendet, um Elemente und Attribute eines XML-Dokuments zu durchlaufen. XPath bietet verschiedene Arten von Ausdrücken, mit denen relevante Informationen aus dem XML-Dokument abgefragt werden können.

Im Folgenden sind die wichtigsten Komponenten von XPath aufgeführt:

  • Structure Definitions - XPath definiert die Teile eines XML-Dokuments wie Element-, Attribut-, Text-, Namespace-, Verarbeitungsanweisungs-, Kommentar- und Dokumentknoten.

  • Path Expressions XPath bietet leistungsstarke Pfadausdrücke, um Knoten oder eine Liste von Knoten in XML-Dokumenten auszuwählen.

  • Standard FunctionsXPath bietet eine umfangreiche Bibliothek mit Standardfunktionen für die Bearbeitung von Zeichenfolgenwerten, numerischen Werten, Datums- und Zeitvergleich, Knoten- und QName-Manipulation, Sequenzmanipulation, Booleschen Werten usw.

  • Major part of XSLTXPath ist eines der Hauptelemente des XSLT-Standards und muss über Kenntnisse verfügen, um mit XSLT-Dokumenten arbeiten zu können.

  • W3C recommendationXPath ist eine offizielle Empfehlung des World Wide Web Consortium (W3C).

Prädikate werden verwendet, um einen bestimmten Knoten oder einen Knoten mit einem bestimmten Wert zu finden, und werden mit [...] definiert.

Ausdruck Ergebnis
/ Klasse / Schüler [1] Wählt das erste Schülerelement aus, das das untergeordnete Element des Klassenelements ist.
/ class / student [last ()] Wählt das letzte Schülerelement aus, das das untergeordnete Element des Klassenelements ist.
/ class / student [last () - 1] Wählt das vorletzte Schülerelement aus, das das untergeordnete Element des Klassenelements ist.
// student [@ rollno = '493'] Wählt alle Schülerelemente aus, die ein Attribut namens rollno mit dem Wert '493' haben.

XPath verwendet einen Pfadausdruck, um einen Knoten oder eine Liste von Knoten aus einem XML-Dokument auszuwählen. Im Folgenden finden Sie eine Liste nützlicher Pfade und Ausdrücke zum Auswählen eines beliebigen Knotens / einer beliebigen Liste von Knoten aus einem XML-Dokument.

Ausdruck Beschreibung
Knotenname Wählen Sie alle Knoten mit dem angegebenen Namen "Knotenname" aus.
/. Die Auswahl beginnt am Wurzelknoten
// // Die Auswahl beginnt am aktuellen Knoten, der der Auswahl entspricht
. Wählt den aktuellen Knoten aus
.. Wählt das übergeordnete Element des aktuellen Knotens aus
@ Wählt Attribute aus
Student Beispiel - Wählt alle Knoten mit dem Namen "Student" aus.
Klasse / Schüler Beispiel: Wählt alle Schülerelemente aus, die Kinder der Klasse sind
//Student Wählt alle Schülerelemente aus, unabhängig davon, wo sie sich im Dokument befinden

Nein! Der XPath-Parser wird nur zum Navigieren im XML-Dokument verwendet. Es ist besser, den DOM-Parser zum Erstellen von XML zu verwenden.

DOM4J ist eine Java-basierte Open Source-Bibliothek zum Parsen von XML-Dokumenten und eine hochflexible, leistungsstarke und speichereffiziente API. Es ist Java-optimiert und verwendet Java-Sammlungen wie List und Arrays. Es funktioniert mit DOM, SAX, XPath und XSLT. Es kann große XML-Dokumente mit sehr geringem Speicherbedarf analysieren.

Sie sollten einen DOM4J-Parser verwenden, wenn -

  • Sie müssen viel über die Struktur eines Dokuments wissen

  • Sie müssen Teile des Dokuments verschieben (möglicherweise möchten Sie beispielsweise bestimmte Elemente sortieren).

  • Sie müssen die Informationen im Dokument mehrmals verwenden

  • Sie sind ein Java-Entwickler und möchten das für Java optimierte Parsen von XML nutzen.

Wenn Sie ein XML-Dokument mit einem DOM4J-Parser analysieren, erhalten Sie die Flexibilität, eine Baumstruktur wiederherzustellen, die alle Elemente Ihres Dokuments enthält, ohne den Speicherbedarf der Anwendung zu beeinträchtigen. Das DOM4J bietet eine Vielzahl von Dienstprogrammfunktionen, mit denen Sie den Inhalt und die Struktur des Dokuments untersuchen können, falls das Dokument gut strukturiert und seine Struktur bekannt ist. DOM4J verwendet den XPath-Ausdruck, um durch das XML-Dokument zu navigieren.

DOM4J bietet Java-Entwicklern Flexibilität und einfache Wartbarkeit von XML-Parsing-Code. Es ist leicht und schnelle API.

Das DOM4J definiert mehrere Java-Klassen. Hier sind die häufigsten Klassen -

  • Document- Repräsentiert das gesamte XML-Dokument. Ein Dokumentobjekt wird häufig als DOM-Baum bezeichnet.

  • Element- Repräsentiert ein XML-Element. Das Elementobjekt verfügt über Methoden zum Bearbeiten seiner untergeordneten Elemente, seines Texts, seiner Attribute und seiner Namespaces.

  • AttributeRepräsentiert ein Attribut eines Elements. Das Attribut verfügt über eine Methode zum Abrufen und Festlegen des Attributwerts. Es hat übergeordneten und Attributtyp.

  • Node Repräsentiert Element, Attribut oder ProcessingInstruction

Wenn Sie mit dem DOM4J arbeiten, gibt es verschiedene Methoden, die Sie häufig verwenden werden -

  • SAXReader.read(xmlSource)() - Erstellen Sie das DOM4J-Dokument aus der XML-Quelle.

  • Document.getRootElement() - Holen Sie sich das Stammelement des XML.

  • Element.node(index) - Holen Sie sich den XML-Knoten an einem bestimmten Index im Element.

  • Element.attributes() - Holen Sie sich alle Attribute eines Elements.

  • Node.valueOf(@Name) - Ermittelt den Wert eines Attributs mit dem angegebenen Namen des Elements.

Ja! Mit dem DOM4J-Parser können wir ein XML-Dokument analysieren, ändern und erstellen.

Was kommt als nächstes ?

Außerdem können Sie Ihre früheren Aufgaben, die Sie mit dem Thema erledigt haben, durchgehen und sicherstellen, dass Sie sicher darüber sprechen können. Wenn Sie frischer sind, erwartet der Interviewer nicht, dass Sie sehr komplexe Fragen beantworten, sondern Sie müssen Ihre grundlegenden Konzepte sehr stark machen.

Zweitens ist es wirklich nicht wichtig, wenn Sie nicht wenige Fragen beantworten können, aber es ist wichtig, dass Sie alles, was Sie beantwortet haben, mit Zuversicht beantwortet haben müssen. Fühlen Sie sich während Ihres Interviews einfach sicher. Wir von tutorialspoint wünschen Ihnen viel Glück, einen guten Interviewer zu haben und alles Gute für Ihre zukünftigen Bemühungen. Prost :-)


Language