php

Použitie xpath () v PHP

Použitie xpath () v PHP
Dokument XML sa používa na ukladanie malého množstva údajov a niekedy je potrebné prečítať konkrétny obsah dokumentu XML na základe hodnoty cesty pomocou skriptu PHP. Funkcia xpath () sa používa na analýzu obsahu dokumentu XML. Túto funkciu je možné použiť pomocou simplexml_load_file () funkcie alebo vytvorením objektu SimpleXMLElement trieda. Funkciu xpath () je možné použiť na čítanie konkrétnych hodnôt uzlov XML uvedených v tomto návode.

Syntax:

Syntax funkcie xpath () je uvedená nižšie.

pole xpath (reťazec $ cesta)

Táto funkcia má jeden argument, ktorý preberá hodnotu cesty, a ak cesta existuje v ktoromkoľvek uzle dokumentu XML, hodnota uzla sa vráti ako pole. Rôzne použitia tejto funkcie sú vysvetlené v nasledujúcej časti tohto tutoriálu.

Vytvorte dokument XML:

Vytvorte súbor XML s názvom Produkty.xml s nasledujúcim obsahom v umiestnení, kde sa vytvorí súbor PHP na analýzu tohto súboru.




MN-56345
DELL
15 palcový monitor Dell
700


HD-34278
SAMSUNG
1 TB pevný disk Samsung
520


MS-67457
LOGITECH
Bezdrôtová myš Logitech
100


MN-76453
HP
14 palcový monitor HP
750

Použitie simplexml_load_file () funkcia:

V tejto časti tohto tutoriálu sa ukázala funkcia xpath () s objektom vytvoreným funkciou simplexml_load_file ().

Príklad 1: Prečítajte si konkrétne hodnoty uzlov XML

Nasledujúci príklad ukazuje, ako čítať obsah konkrétnych hodnôt uzlov z dokumentu XML definovaním cesty funkcie xpath (). Premenná objektu, $ xml je vytvorený na čítanie špecifických hodnôt uzlov súboru Produkty.xml spis. „/ PRODUKTY / PRODUKT / ZNAČKA“ sa používa v xpath () na čítanie všetkých hodnôt uzla BRAND. „/ PRODUKTY / PRODUKT“ sa používa v xpath () na čítanie všetkých hodnôt podradeného uzla VÝROBOK uzly. pre každý slučka slúži na tlač hodnôt NÁZOV a CENA uzly.

// Vytvorenie objektu na čítanie súboru XML
$ xml = simplexml_load_file ('produkty.xml ');
// Vyhľadá všetky hodnoty uzla BRAND
$ brand = $ xml-> xpath ('/ PRODUCTS / PRODUCT / BRAND');
// Vytlačte hodnoty poľa
ozvena “

Zoznam značiek je:

";
foreach (značka $ ako $ meno)
echo "$ meno
";

// Vyhľadá všetky hodnoty uzlov PRODUCT
$ products = $ xml-> xpath ('/ PRODUCTS / PRODUCT');
ozvena “

Zoznam názvu a ceny produktu:

";
ozvena “";
ozvena “";
// Vytlačte hodnoty poľa
foreach ($ products as $ product)
ozvena “";

ozvena “
názovcena
$ product-> NAME $$ produkt-> CENA
";
?>

Výkon:

Po spustení skriptu zo servera sa objaví nasledujúci výstup.

Príklad 2: Prečítajte si konkrétne hodnoty uzlov XML na základe podmienky

Nasledujúci príklad ukazuje, ako čítať konkrétne hodnoty uzlov na základe stavu pomocou funkcie xpath (). Hodnota cesty, „/ PRODUKTY / PRODUKT [CENA> 600]“, prehľadá hodnoty všetkých podradených uzlov súboru VÝROBOK uzol, kde hodnota CENA uzol je viac ako 600. pre každý slučka slúži na tlač hodnôt NÁZOV a CENA uzly.

// Vytvorenie objektu na čítanie súboru XML
$ xml = simplexml_load_file ('produkty.xml ');
// Hľadajte výrobky, ktorých cenová hodnota je viac ako 600
$ products = $ xml-> xpath ('/ PRODUCTS / PRODUCT [PRICE> 600]');
ozvena “

Zoznam názvov a cien produktov, ktorých cena je vyššia ako 600:

";
ozvena “";
ozvena “";
// Vytlačte hodnoty poľa
foreach ($ products as $ product)
ozvena “";

ozvena “
názovcena
$ product-> NAME $$ produkt-> CENA
";
?>

Výkon:

Po spustení skriptu zo servera sa objaví nasledujúci výstup.

Príklad 3: Prečítajte si konkrétne hodnoty uzlov XML na základe atribútov

Nasledujúci príklad ukazuje, ako čítať konkrétne hodnoty uzlov na základe hodnôt atribútov konkrétneho uzla dokumentu XML pomocou funkcie xpath (). Hodnota cesty, „/ PRODUKTY / PRODUKT [@ category =” Monitor ”]“ prehľadá hodnoty všetkých podradených uzlov súboru produkt uzol, kde je hodnota atribútu kategórie Monitor. pre každý slučka slúži na tlač hodnôt ZNAČKA, MENO, a CENA uzly.

// Vytvorenie objektu na čítanie súboru XML
$ xml = simplexml_load_file ('produkty.xml ');
// Vyhľadajte produkty, kde je hodnota atribútu çategory 'Monitor'
$ products = $ xml-> xpath ('/ PRODUCTS / PRODUCT [@ category = "Monitor"]');
ozvena “

Zoznam značky, názvu a ceny produktu podľa kategórie (Monitor):

";
ozvena “";
ozvena “";
// Vytlačte hodnoty poľa
foreach ($ products as $ product)
ozvena “";

ozvena “
Značkanázovcena
$ produkt-> ZNAČKA$ product-> NAME $$ produkt-> CENA
";
?>

Výkon:

Po spustení skriptu zo servera sa objaví nasledujúci výstup.

Použitie SimpleXMLElement trieda:

V tejto časti tohto tutoriálu sa ukazujú použitia funkcie xpath () vytvorením objektu triedy SimpleXMLElement.

Príklad-4: Použitie funkcie xpath () definovaním obsahu XML v premennej

Nasledujúci príklad ukazuje, ako čítať hodnoty uzlov dokumentu XML deklarované v premennej namiesto súboru. Obsah XML je uložený v priečinku $ xml_data premenná. „/ Customers / customer“ sa používa ako hodnota argumentu funkcie xpath () na čítanie všetkých hodnôt podradených uzlov súboru zákazník uzol. Ďalej, a pre každý slučka slúži na tlač hodnôt názov uzol. „/ Customers / customer [@ department = 'HR']“ sa používa ako hodnota argumentu inej funkcie xpath () na čítanie všetkých hodnôt podradených uzlov zákazníckeho uzla, kde hodnota oddelenie atribút je HR. Ďalšie, a pre každého slučka sa používa na tlač hodnôt súboru e-mail uzol.

$ xml_data = <<

Md. Mahbub
[chránené e-mailom]


Farhana Zaman
[chránené e-mailom]


XML;
// Definujte objekt na čítanie údajov XML
$ xml = nový SimpleXMLElement ($ xml_data);
// Definujte cestu na čítanie všetkých údajov o zákazníkoch
$ customers = $ xml-> xpath ("/ customers / customer");
// Vytlačte mená zákazníkov
ozvena “

Zoznam mien zákazníkov:

";
foreach ($ zákazníci ako $ zákazník)
echo "$ customer-> meno
";

// Definujte cestu k načítaniu všetkých údajov o zákazníkoch HR oddelenia
$ customers = $ xml-> xpath ("/ customers / customer [@ department = 'HR']");
// Vytlačte e-mail zákazníkov
ozvena “

E-mail zákazníka HR oddelenia:

";
foreach ($ zákazníci ako $ zákazník)
echo "$ zákazník-> e-mail
";

?>

Výkon:

Po spustení skriptu zo servera sa objaví nasledujúci výstup.

Záver:

V tejto príručke sú vysvetlené dva rôzne spôsoby použitia funkcie xpath () na čítanie hodnôt uzlov dokumentu XML na základe konkrétnej cesty alebo cesty s podmienkou alebo cesty s hodnotou atribútu pomocou viacerých príkladov.

Hry Nainštalujte si najnovšiu strategickú hru OpenRA na Ubuntu Linux
Nainštalujte si najnovšiu strategickú hru OpenRA na Ubuntu Linux
OpenRA je herný engine Libre / Free Real Time Strategy, ktorý obnovuje rané hry z Westwoodu, ako napríklad klasické Command & Conquer: Red Alert. Dist...
Hry Nainštalujte si najnovší Dolphin Emulator pre Gamecube a Wii na Linuxe
Nainštalujte si najnovší Dolphin Emulator pre Gamecube a Wii na Linuxe
Emulátor Dolphin vám umožní hrať vybrané hry Gamecube a Wii na osobných počítačoch Linux (PC). Emulátor Dolphin, ktorý je voľne dostupným emulátorom ...
Hry Ako používať GameConqueror Cheat Engine v Linuxe
Ako používať GameConqueror Cheat Engine v Linuxe
Tento článok obsahuje sprievodcu používaním cheatovacieho modulu GameConqueror v systéme Linux. Mnoho používateľov, ktorí hrajú hry v systéme Windows,...