Przykłady parsera Java Dom do analizowania XML

Przykłady parsera Java Dom do analizowania XML

XML to język znaczników, który służy głównie do wymiany informacji między dwiema aplikacjami, takimi jak bazy danych, strony internetowe itp. Tagi XML są zdefiniowane przez użytkownika. Jest bardziej czytelny przez ludzi niż inne języki marki. Java ma wiele wbudowanych bibliotek do odczytania dokumentów XML za pomocą parserów Java XML, takich jak Dom Parser, Sax Parser itp. Metody używania parsera DOM do odczytania dokumentów XML za pomocą Java są pokazane w tym samouczku.

Wymagania wstępne:

  1. Zainstaluj najnowszą wersję OpenJDK z JRE.
  2. Zainstaluj dowolny użyteczny edytor do pisania i wykonania kodu Java. Możesz sprawdzić ten samouczek, aby zainstalować edytor Eclipse.

Utwórz plik XML

Utwórz plik XML o nazwie „Produkty.xml ”z następującym skryptem. Element główny tego pliku zawiera trzy elementy dziecięce o nazwie znacznika „Produkt”. Każdy znacznik „produktu” ma dwa atrybuty, które są „id” i „wpisz”. Każdy znacznik „produktu” ma trzy elementy dziecięce, które są „marką”, „rozmiarem” i „ceny”.

produkty.XML




SAMSUNG
500 TB
70


Dell
15 "
100


SAMSUNG
Średni
5


Logitech
Mały
10

Java Dom Parser

Parser Model Document Obiekt (DOM) jest jednym ze sposobów odczytania wartości atrybutu i znacznika dokumentu XML w Javie. Nowe wartości węzłów można dodać, zmienić lub usunąć za pomocą tego parsera. Odczytuje całą zawartość dokumentu XML i ładuje ją w formacie struktury drzewa. Metody czytania całej zawartości „produktów.plik XML ”i wyszukiwanie konkretnej zawartości na podstawie wartości atrybutu za pomocą parsera DOM są pokazane w następnej części tego samouczka.

Przeczytaj plik XML za pomocą parsera DOM

Utwórz plik Java z następującym kodem, który analizuje zawartość „Produktów.plik xml ”i wydrukuj zawartość każdego znacznika„ produktu ”w formie tabelarycznej. Obiekt konstruktora dokumentów jest tworzony w skrypcie, aby załadować dokument XML. Następnie każdy typ węzła jest sprawdzany, a wartości atrybutów „id” i „typu” są odczytywane za pomocą metody getAttribute (). Metoda getElementsBaTagname () służy do odczytu zawartości tagów „marki”, „rozmiaru” i „ceny”.

// Zaimportuj niezbędne moduły
Importuj Java.io.Plik;
importować Javax.XML.Parsers.DocumentBuilderFactory;
importować Javax.XML.Parsers.DocumentBuilder;
import org.W3C.Dom.Dokument;
import org.W3C.Dom.Nodelist;
import org.W3C.Dom.Węzeł;
import org.W3C.Dom.Element;
Klasa publiczna javaxmlparser
public static void main (string [] args)
próbować
// Utwórz DocumentBuilder, aby przeanalizować zawartość pliku XML
DocumentBuilderFactory Factory = DocumentBuilderFactory.NEWINSTANCE ();
DocumentBuilder Builder = Fabryka.NewdocumentBuilder ();
// Utwórz obiekt z pliku XML, aby parsować dokument XML
Dokument xmldoc = konstruktor.Parse (nowy plik („produkty.xml "));
// Utwórz obiekt, aby odczytać zawartość konkretnego elementu
Nodelist Ele = xmldoc.getElementsBaTagname („produkt”);
// Wydrukuj tytuł wyjścia tabelarycznego
System.na zewnątrz.println ("\ nid \ ttype \ tbrand \ t \ tsize \ tprice \ n");
// odczytaj wszystkie atrybuty i wartości elementów dokumentu XML za pomocą pętli
dla (int i = 0; i < ele.getLength(); i++)
// Odczytaj bieżący węzeł
Węzeł nd = ele.Pozycja (i);
// Sprawdź typ węzła
if (nd.getNodeType () ==.Element_node)
Element cur_element = (element) nd;
System.na zewnątrz.Drukuj (cur_element.getAttribute („id”) + „\ t”);
System.na zewnątrz.Drukuj (cur_element.getAttribute („typ”) + „\ t”);
System.na zewnątrz.Drukuj (cur_element.getElementsBaTagname („marka”).pozycja (0).getTextContent () + "\ t \ t");
System.na zewnątrz.Drukuj (cur_element.getElementsBaTagname („rozmiar”).pozycja (0).getTextContent () + „\ t”);
System.na zewnątrz.Drukuj („$” + cur_element.getElementsBaTagname („cena”).pozycja (0).getTextContent () + „\ t”);

System.na zewnątrz.println ();

Catch (wyjątek e)
mi.printStackTrace ();


Pojawi się następujące dane wyjściowe po wykonaniu poprzedniego kodu. Atrybuty i wartości tagu dokumentu XML są wydrukowane w formie tabelarycznej. Tag główny dokumentu XML zawiera trzy znaczniki „produktu”. Tak więc na wyjściu wydrukowane są trzy rzędy wartości:

Wyszukaj w pliku XML za pomocą parsera DOM

Utwórz plik Java z następującym kodem, który wyszukuje zawartość konkretnego znacznika „Produkty.plik xml ”oparty na wartości atrybutu. Zawartość znacznika jest drukowana, jeśli znaleziono jakikolwiek dopasowanie. Komunikat o błędzie jest wydrukowany, jeśli nie zostanie znalezione dopasowanie.

// Zaimportuj niezbędne moduły
Importuj Java.io.Plik;
importować Javax.XML.Parsers.DocumentBuilderFactory;
importować Javax.XML.Parsers.DocumentBuilder;
import org.W3C.Dom.Dokument;
import org.W3C.Dom.Nodelist;
import org.W3C.Dom.Węzeł;
import org.W3C.Dom.Element;
Importuj Java.io.*;
Klasa publiczna javaxmlparser2
public static void main (string [] args)
próbować
// Utwórz DocumentBuilder, aby przeanalizować zawartość pliku XML
DocumentBuilderFactory Factory = DocumentBuilderFactory.NEWINSTANCE ();
DocumentBuilder Builder = Fabryka.NewdocumentBuilder ();
// Utwórz obiekt z pliku XML, aby parsować dokument XML
Dokument xmldoc = konstruktor.Parse (nowy plik („produkty.xml "));
// Utwórz obiekt, aby odczytać zawartość konkretnego elementu
Nodelist Ele = xmldoc.getElementsBaTagname („produkt”);
// Utwórz obiekt, aby wziąć wartość identyfikacyjną, która zostanie przeszukana
BufferedReader buf = nowy BufferedReader (nowy InputStreamReader (system.W));
System.na zewnątrz.drukuj („Wprowadź identyfikator produktu:”);
String Search = BUF.Czytaj linię();
// Ustaw wartość domyślną
Boolean Found = False;
// odczytaj wszystkie atrybuty i wartości elementów dokumentu XML za pomocą pętli
dla (int i = 0; i < ele.getLength(); i++)
// Odczytaj bieżący węzeł
Węzeł nd = ele.Pozycja (i);
// Sprawdź typ węzła
if (nd.getNodeType () ==.Element_node)
Element cur_element = (element) nd;
String val = (string) cur_element.getAttribute („id”);
// Sprawdź identyfikator wyszukiwania lub nie
if (val.równa się (wyszukiwanie))

System.na zewnątrz.println („id:” + cur_element.getAttribute („id”) + „\ t”);
System.na zewnątrz.println („Type:” + cur_element.getAttribute („typ”) + „\ t”);
System.na zewnątrz.println („marka:” + cur_element.getElementsBaTagname („marka”).pozycja (0).getTextContent () + "\ t \ t");
System.na zewnątrz.println („cena: $” + cur_element.getElementsBaTagname („cena”).pozycja (0).getTextContent () + „\ t”);
znalezione = prawda;
przerwa;



if (znaleziono == false)
System.na zewnątrz.println („ID nie istnieje.");
Catch (wyjątek e)
mi.printStackTrace ();


Pojawi się następujące dane wyjściowe po wykonaniu poprzedniego kodu. Zgodnie z wyjściem, identyfikator produktu P-002 istnieje w pliku XML. Tak więc zawartość znacznika zawierającego ten identyfikator jest wydrukowany.

Wniosek

Zastosowania parsera Java Dom do odczytania zawartości prostego pliku XML na różne sposoby są pokazane w tym samouczku przy użyciu dwóch przykładów. Wiele innych parserów jest dostępnych w Javie, aby odczytać lub modyfikować dokumenty XML.