Zastosowanie XPath w PHP

Zastosowanie XPath w PHP
Dokument XML służy do przechowywania niewielkiej ilości danych, a czasem konieczne jest odczytanie konkretnej zawartości dokumentu XML na podstawie wartości ścieżki za pomocą skryptu PHP. Funkcja xpath () służy do analizowania zawartości dokumentu XML. Tej funkcji można użyć za pomocą simplexml_load_file () funkcja lub tworzenie obiektu Simplexmlelement klasa. Do odczytania konkretnych wartości węzła XML pokazanych w tym samouczku można użyć funkcji xpath ().

Składnia:

Składnia funkcji Xpath () podano poniżej.

tablica Xpath (String $ ścieżka)

Ta funkcja ma jeden argument, który ma wartość ścieżki, a jeśli ścieżka istnieje w dowolnym węźle dokumentu XML, wówczas wartość węzła zostanie zwrócona jako tablica. Różne zastosowania tej funkcji wyjaśniły w następnej części tego samouczka.

Utwórz dokument XML:

Utwórz plik XML o nazwie produkty.XML z następującą zawartością w miejscu, w którym plik PHP zostanie utworzony, aby przeanalizować ten plik.




MN-56345
DELL
15 -calowy monitor Dell
700


HD-34278
SAMSUNG
1 TB Samsung HDD
520


MS-67457
Logitech
Logitech Wireless Mysz
100


MN-76453
HP
14 -calowy monitor HP
750

Zastosowanie simplexml_load_file () funkcjonować:

Funkcja xpath () z obiektem utworzonym przez funkcję simplexml_load_file () pokazała w tej części tego samouczka.

Przykład-1: Przeczytaj konkretne wartości węzłów XML

Poniższy przykład pokazuje, jak odczytać zawartość konkretnych wartości węzłów z dokumentu XML poprzez zdefiniowanie ścieżki funkcji Xpath (). Zmienna obiektu, $ xml jest tworzony w celu odczytania określonych wartości węzła produkty.XML plik. „/Produkty/produkt/marka” jest używany w Xpath () do odczytu wszystkich wartości węzłów marki. „/Produkty/produkt” jest używany w xpath () do odczytania wszystkich wartości węzła dziecięcego PRODUKT węzły. dla każdego pętla służy do drukowania wartości NAZWA I CENA węzły.

// Utwórz obiekt, aby odczytać plik XML
$ xml = simplexml_load_file („produkty.xml ');
// Wyszukaj wszystkie wartości węzłów marki
$ marka = $ xml-> xpath ('/produkty/produkt/marka');
// Wydrukuj wartości tablicy
Echo "

Lista marek to:

";
foreach ($ marka as $ name)
Echo "$ Nazwa
";

// Wyszukaj wszystkie wartości węzłów produktów
$ produkty = $ xml-> xpath ('/produkty/produkt');
Echo "

Lista nazwy produktu i ceny:

";
Echo "";
Echo "";
// Wydrukuj wartości tablicy
Foreach ($ produkty jako $ produkt)
Echo "";

Echo "
NazwaCena
$ produkt-> nazwa produkt $$-> cena
";
?>

Wyjście:

Następujące dane wyjściowe pojawi się po uruchomieniu skryptu z serwera.

Przykład-2: Przeczytaj konkretne wartości węzłów XML na podstawie warunku

Poniższy przykład pokazuje, jak odczytać konkretne wartości węzłów na podstawie warunku za pomocą funkcji xpath (). Wartość ścieżki, „/Produkty/produkt [cena> 600]”, przeszuka wartości wszystkich węzłów dziecięcych PRODUKT węzeł, w którym wartość CENA Węzeł ma ponad 600. dla każdego pętla służy do drukowania wartości NAZWA I CENA węzły.

// Utwórz obiekt, aby odczytać plik XML
$ xml = simplexml_load_file („produkty.xml ');
// przeszukaj produkty, w których wartość cenowa wynosi ponad 600
$ produkty = $ xml-> xpath ('/produkty/produkt [cena> 600]');
Echo "

Lista nazwy produktu i ceny, w której cena wynosi ponad 600:

";
Echo "";
Echo "";
// Wydrukuj wartości tablicy
Foreach ($ produkty jako $ produkt)
Echo "";

Echo "
NazwaCena
$ produkt-> nazwa produkt $$-> cena
";
?>

Wyjście:

Następujące dane wyjściowe pojawi się po uruchomieniu skryptu z serwera.

Przykład-3: Przeczytaj konkretne wartości węzła XML na podstawie atrybutu

Poniższy przykład pokazuje, jak odczytać konkretne wartości węzła na podstawie wartości atrybutu węzła specyficznego dokumentu XML za pomocą funkcji XPATH (). Wartość ścieżki, „/Products/Product [@category =” monitor ”] '' przeszuka wartości wszystkich węzłów dziecięcych produkt węzeł, w którym wartość atrybutu kategorii jest Monitor. dla każdego pętla służy do drukowania wartości NAZWA HANDLOWA, I CENA węzły.

// Utwórz obiekt, aby odczytać plik XML
$ xml = simplexml_load_file („produkty.xml ');
// Wyszukaj produkty, w których wartością atrybutu ç kategorii jest „monitor”
$ produkty = $ xml-> xpath ('/produkty/produkt [@kategoria = "monitor"]');
Echo "

Lista marki produktu, nazwy i ceny na podstawie kategorii (monitor):

";
Echo "";
Echo "";
// Wydrukuj wartości tablicy
Foreach ($ produkty jako $ produkt)
Echo "";

Echo "
MarkaNazwaCena
$ produkt-> marka$ produkt-> nazwa produkt $$-> cena
";
?>

Wyjście:

Następujące dane wyjściowe pojawi się po uruchomieniu skryptu z serwera.

Zastosowanie Simplexmlelement klasa:

Zastosowania funkcji xpath () poprzez utworzenie obiektu klasy simplexmlelement pokazano w tej części tego samouczka.

Przykład-4: użycie xpath () poprzez definiowanie zawartości XML w zmiennej

Poniższy przykład pokazuje, jak odczytać wartości węzła dokumentu XML zadeklarowane w zmiennej zamiast pliku. Treść XML jest przechowywana w $ xml_data zmienny. „/Klienci/Klient” jest używany jako wartość argumentu funkcji xpath () do odczytu wszystkich wartości węzłów dziecięcych klient węzeł. Następnie dla każdego pętla służy do drukowania wartości imię węzeł. „/Klienci/Client [@dział =„ HR ”]” jest używany jako wartość argumentu innej funkcji xpath () do odczytu wszystkich wartości węzłów dziecięcych węzłów klienta, gdzie wartość dział atrybut jest Hr. Następny, dla każdego pętla służy do wydrukowania wartości e-mail węzeł.

$ xml_data = <<

MD. Mahbub
[email protected]


Farhana Zaman
[email protected]


Xml;
// Zdefiniuj obiekt, aby odczytać dane XML
$ xml = nowy simplexMlelement ($ xml_data);
// Zdefiniuj ścieżkę do odczytania danych wszystkich klientów
$ klienci = $ xml-> xpath („/klienci/klienci”);
// Wydrukuj nazwę klientów
Echo "

Lista nazw klientów:

";
foreach ($ klienci jako $ klient)
echo "$ Customer-> Nazwa
";

// Zdefiniuj ścieżkę do odczytania wszystkich danych klientów działu HR
$ Clients = $ xml-> xpath ("/klienci/client [@dział = 'hr']");
// Wydrukuj e -mail klientów
Echo "

E -mail klienta z działu HR:

";
foreach ($ klienci jako $ klient)
echo "$ Customer-> e-mail
";

?>

Wyjście:

Następujące dane wyjściowe pojawi się po uruchomieniu skryptu z serwera.

Wniosek:

Dwa różne sposoby korzystania z funkcji Xpath () do odczytania wartości węzła dokumentu XML na podstawie określonej ścieżki lub ścieżki z warstwem lub ścieżką o wartości atrybutu zostały wyjaśnione w tym samouczku za pomocą wielu przykładów.