php

Użycie xpath() w PHP

Użycie xpath() w PHP
Dokument XML służy do przechowywania niewielkiej ilości danych, a czasami jest wymagane do odczytania określonej zawartości dokumentu XML na podstawie wartościścieżki za pomocą skryptu PHP. Funkcja xpath() służy do parsowania zawartości dokumentu XML. Z tej funkcji można korzystać za pomocą simplexml_load_file() funkcji lub tworząc obiekt ProstyXMLElement klasa. Funkcja xpath() może być użyta do odczytania poszczególnych wartości węzłów XML pokazanych w tym samouczku.

Składnia:

Składnia funkcji xpath() jest podana poniżej.

tablica xpath(ciąg $ścieżka)

Ta funkcja ma jeden argument, który przyjmuje wartość ścieżki, a jeśli ścieżka istnieje w dowolnym węźle dokumentu XML, wartość węzła zostanie zwrócona jako tablica. Różne zastosowania tej funkcji zostały wyjaśnione 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 lokalizacji, w której zostanie utworzony plik PHP, aby przeanalizować ten plik.




MN-56345
DELL
15-calowy monitor firmy Dell
700


HD-34278
SAMSUNG
Dysk twardy Samsung 1 TB
520


MS-67457
LOGITECH
Mysz bezprzewodowa Logitech
100


MN-76453
HP
14-calowy monitor HP
750

Zastosowanie simplexml_load_file() funkcjonować:

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

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

Poniższy przykład pokazuje, jak odczytać zawartość poszczególnych wartości węzłów z dokumentu XML poprzez zdefiniowanie ścieżki funkcji xpath(). Zmienna obiektu, $xml jest tworzony do odczytu określonych wartości węzłów of produkty.xml plik. '/PRODUKTY/PRODUKT/MARKA' jest używany w xpath() do odczytywania wszystkich wartości węzłów BRAND. '/PRODUKTY/PRODUKT' jest używany w xpath() do odczytywania wszystkich wartości węzłów potomnych z PRODUKT węzły. dla każdego pętla służy do drukowania wartości values NAZWA i CENA £ węzły.

//Utwórz obiekt do odczytu pliku XML
$xml = simplexml_load_file('produkty.xml');
//Przeszukaj wszystkie wartości węzłów BRAND
$marka = $xml->xpath('/PRODUKTY/PRODUKT/MARKA');
//Wydrukuj wartości tablicy
Echo "

Lista nazw marek to:

";
foreach($marka jako $nazwa)
echo "$nazwa
";

//Przeszukaj wszystkie wartości węzłów PRODUCT
$produkty = $xml->xpath('/PRODUKTY/PRODUKT');
Echo "

Lista nazw produktów i cen:

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

Echo "
NazwaCena £
$product->NAME $$produkt->CENA
";
?>

Wynik:

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

Przykład-2: Odczytaj poszczególne wartości węzłów XML na podstawie warunku

Poniższy przykład pokazuje, jak odczytać wartości poszczególnych węzłów na podstawie warunku za pomocą funkcji xpath(). Wartość ścieżki, '/PRODUKTY/PRODUKT[CENA > 600]', przeszuka wartości wszystkich węzłów podrzędnych z PRODUKT węzeł, w którym wartość CENA £ węzeł jest większy niż 600. dla każdego pętla służy do drukowania wartości values NAZWA i CENA £ węzły.

//Utwórz obiekt do odczytu pliku XML
$xml = simplexml_load_file('produkty.xml');
//Wyszukaj produkty, których cena przekracza 600
$produkty = $xml->xpath('/PRODUKTY/PRODUKT[CENA > 600]');
Echo "

Lista produktów z nazwą i ceną, gdy cena przekracza 600:

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

Echo "
NazwaCena £
$product->NAME $$produkt->CENA
";
?>

Wynik:

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

Przykład-3: Przeczytaj poszczególne wartości węzłów XML na podstawie atrybutu

Poniższy przykład pokazuje, jak odczytać wartości poszczególnych węzłów na podstawie wartości atrybutów określonego węzła dokumentu XML za pomocą funkcji xpath(). Wartość ścieżki, '/PRODUKTY/PRODUKT[@category="Monitor"]' przeszuka wartości wszystkich węzłów podrzędnych z produkt węzeł, w którym wartość atrybutu kategorii to Monitor. dla każdego pętla służy do drukowania wartości values NAZWA HANDLOWA, i CENA £ węzły.

//Utwórz obiekt do odczytu pliku XML
$xml = simplexml_load_file('produkty.xml');
//Wyszukaj produkty, dla których wartość atrybutu çategory to „Monitor”
$produkty = $xml->xpath('/PRODUKTY/PRODUKT[@category="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 £
$product->BRAND$product->NAME $$produkt->CENA
";
?>

Wynik:

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

Zastosowanie ProstyXMLElement klasa:

W tej części tego samouczka pokazano zastosowanie funkcji xpath() poprzez utworzenie obiektu klasy SimpleXMLElement.

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

Poniższy przykład pokazuje, jak odczytać wartości węzłów dokumentu XML zadeklarowane w zmiennej zamiast w pliku. Treść XML jest przechowywana w $xml_data zmienna. „/klienci/klient” jest używany jako wartość argumentu funkcji xpath() do odczytywania wszystkich wartości węzłów potomnych funkcji klient węzeł. Następnie a dla każdego pętla służy do drukowania wartości values imię węzeł. „/klienci/klient[@department='HR']” jest używany jako wartość argumentu innej funkcji xpath() do odczytywania wszystkich wartości węzłów podrzędnych węzła klienta, gdzie wartość departament atrybut to HR. Kolejny, za każdego pętla służy do drukowania wartości e-mail węzeł.

$xml_data = <<

Md. Mahbub
[e-mail chroniony]


Farhana Zaman
[e-mail chroniony]


XML;
//Zdefiniuj obiekt do odczytu danych XML
$xml = nowy element SimpleXMLE($xml_data);
//Zdefiniuj ścieżkę do odczytu wszystkich danych klientów
$klienci = $xml->xpath("/klienci/klient");
//Drukuj nazwiska klientów
Echo "

Lista nazwisk klientów:

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

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

Adres e-mail klienta działu HR:

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

?>

Wynik:

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

Wniosek:

Dwa różne sposoby używania funkcji xpath() do odczytywania wartości węzłów dokumentu XML na podstawie określonej ścieżki lub ścieżki z warunkiem lub ścieżki z wartością atrybutu zostały wyjaśnione w tym samouczku przy użyciu wielu przykładów.

Gry SuperTuxKart for Linux
SuperTuxKart for Linux
SuperTuxKart is a great title designed to bring you the Mario Kart experience free of charge on your Linux system. It is pretty challenging and fun to...
Gry Battle for Wesnoth Tutorial
Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...
Gry 0 A.D. Tutorial
0 A.D. Tutorial
Out of the many strategy games out there, 0 A.D. manages to stand out as a comprehensive title and a very deep, tactical game despite being open sourc...