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.
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 "
Nazwa | Cena £ |
---|---|
$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 "
Nazwa | Cena £ |
---|---|
$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 "
Marka | Nazwa | Cena £ |
---|---|---|
$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 = <<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.