php

Xpath () izmantošana PHP

Xpath () izmantošana PHP
XML dokuments tiek izmantots neliela apjoma datu glabāšanai, un dažreiz ir nepieciešams lasīt XML dokumenta konkrēto saturu, pamatojoties uz ceļa vērtību, izmantojot PHP skriptu. Funkcija xpath () tiek izmantota XML dokumenta parsēšanai. Šo funkciju var izmantot, izmantojot simplexml_load_file () funkciju vai izveidojot objektu VienkāršsXMLElement klasē. Funkciju xpath () var izmantot, lai nolasītu konkrētās XML mezgla vērtības, kas parādītas šajā apmācībā.

Sintakse:

Funkcijas xpath () sintakse ir sniegta zemāk.

masīvs xpath (virkne $ path)

Šai funkcijai ir viens arguments, kas ņem ceļa vērtību, un, ja ceļš pastāv jebkurā XML dokumenta mezglā, tad mezgla vērtība tiks atgriezta kā masīvs. Dažādi šīs funkcijas izmantošanas veidi ir izskaidroti šīs apmācības nākamajā daļā.

Izveidot XML dokumentu:

Izveidojiet XML failu ar nosaukumu produktiem.xml ar šādu saturu vietā, kur tiks izveidots PHP fails, lai parsētu šo failu.




MN-56345
DELL
15 collu Dell monitors
700


HD-34278
SAMSUNG
1 TB Samsung HDD
520


MS-67457
LOGITECH
Logitech bezvadu pele
100


MN-76453
ZS
14 collu HP monitors
750

Izmantošana simplexml_load_file () funkcija:

Funkcija xpath () ar objektu, ko izveidojusi funkcija simplexml_load_file (), ir parādīta šajā apmācības daļā.

1. piemērs: nolasiet konkrētās XML mezgla vērtības

Šajā piemērā parādīts, kā no XML dokumenta nolasīt konkrēto mezglu vērtību saturu, nosakot funkcijas ceļu xpath (). Objekta mainīgais, $ xml ir izveidots, lai nolasītu specifiskās mezgla vērtības produktiem.xml failu. "/ PRODUKTI / PRODUKTS / ZĪMOLS" tiek izmantots xpath (), lai nolasītu visas BRAND mezgla vērtības. "/ PRODUKTI / PRODUKTS" tiek izmantots xpath (), lai nolasītu visas bērna mezglu vērtības PRODUKTS mezgli. katram cilpa tiek izmantota, lai drukātu vērtības NAME un CENA mezgli.

// Izveidojiet objektu XML faila lasīšanai
$ xml = simplexml_load_file ('produkti.xml ');
// Meklēt visās BRAND mezglu vērtībās
$ zīmols = $ xml-> xpath ('/ PRODUCTS / PRODUCT / BRAND');
// Izdrukājiet masīva vērtības
atbalss "

Zīmolu nosaukumu saraksts ir šāds:

";
foreach ($ brand kā $ name)
atbalss "$ nosaukums
";

// Meklēt visās PRODUCT mezgla vērtībās
$ produkti = $ xml-> xpath ('/ PRODUCTS / PRODUCT');
atbalss "

Produkta nosaukuma un cenas saraksts:

";
atbalss "";
atbalss "";
// Izdrukājiet masīva vērtības
foreach ($ produkti kā $ produkts)
atbalss "";

atbalss "
NosaukumsCena
$ product-> NAME $$ produkts-> PRICE
";
?>

Izeja:

Pēc skripta palaišanas no servera parādīsies šāda izeja.

2. piemērs: nolasiet konkrētās XML mezgla vērtības, pamatojoties uz nosacījumu

Šajā piemērā parādīts, kā nolasīt konkrēto mezglu vērtības, pamatojoties uz nosacījumu, izmantojot funkciju xpath (). Ceļa vērtība, "/ PRODUKTI / PRODUKTS [CENA> 600]", meklēs visu bērnu mezglu vērtības PRODUKTS mezgls, kur vērtība CENA mezglā ir vairāk nekā 600. katram cilpa tiek izmantota, lai drukātu vērtības NAME un CENA mezgli.

// Izveidojiet objektu XML faila lasīšanai
$ xml = simplexml_load_file ('produkti.xml ');
// Meklējiet produktus, kur cenas vērtība pārsniedz 600
$ produkti = $ xml-> xpath ('/ PRODUCTS / PRODUCT [PRICE> 600]');
atbalss "

Produkta nosaukuma un cenas saraksts, ja cena ir lielāka par 600:

";
atbalss "";
atbalss "";
// Izdrukājiet masīva vērtības
foreach ($ produkti kā $ produkts)
atbalss "";

atbalss "
NosaukumsCena
$ product-> NAME $$ produkts-> PRICE
";
?>

Izeja:

Pēc skripta palaišanas no servera parādīsies šāda izeja.

3. piemērs: nolasiet konkrētās XML mezgla vērtības, pamatojoties uz atribūtu

Šajā piemērā parādīts, kā nolasīt konkrēto mezglu vērtības, pamatojoties uz XML dokumenta īpašā mezgla atribūtu vērtībām, izmantojot funkciju xpath (). Ceļa vērtība, '/ PRODUKTI / PRODUKTS [@ category = ”Monitor”] ” meklēs visu bērnu mezglu vērtības produkts mezgls, kur ir kategorijas atribūta vērtība Monitor. katram cilpa tiek izmantota, lai drukātu vērtības ZĪMOLA NOSAUKUMS, un CENA mezgli.

// Izveidojiet objektu XML faila lasīšanai
$ xml = simplexml_load_file ('produkti.xml ');
// Meklēt produktos, kur atribūta çategory vērtība ir 'Monitor'
$ produkti = $ xml-> xpath ('/ PRODUCTS / PRODUCT [@ category = "Monitor"]');
atbalss "

Produktu zīmolu, nosaukumu un cenu saraksts, pamatojoties uz kategoriju (Monitor):

";
atbalss "";
atbalss "";
// Izdrukājiet masīva vērtības
foreach ($ produkti kā $ produkts)
atbalss "";

atbalss "
ZīmolsNosaukumsCena
$ produkts-> ZĪMOLS$ product-> NAME $$ produkts-> PRICE
";
?>

Izeja:

Pēc skripta palaišanas no servera parādīsies šāda izeja.

Izmantošana VienkāršsXMLElement klase:

Funkcijas xpath () izmantošana, izveidojot objekta SimpleXMLElement klasi, ir parādīta šajā apmācības daļā.

4. piemērs: xpath () izmantošana, definējot XML saturu mainīgajā

Šis piemērs parāda, kā faila vietā nolasīt mainīgajā deklarētās XML dokumenta mezglu vērtības. XML saturs tiek saglabāts $ xml_data mainīgais. “/ Klienti / klients” tiek izmantots kā funkcijas xpath () argumenta vērtība, lai nolasītu visas klientu mezgls. Tālāk, a katram cilpa tiek izmantota, lai drukātu vērtības vārds mezgls. “/ Klienti / klients [@ departaments = 'HR']” tiek izmantots kā citas xpath () funkcijas argumenta vērtība, lai nolasītu visas klienta mezgla pakārtoto mezglu vērtības, kur vērtība nodaļa atribūts ir HR. Nākamais, a katram cilpa tiek izmantota, lai drukātu e-pasts mezgls.

$ xml_data = <<

Md. Mahbubs
[e-pasts aizsargāts]


Farhana Zamana
[e-pasts aizsargāts]


XML;
// Definējiet objektu, lai lasītu XML datus
$ xml = new SimpleXMLElement ($ xml_data);
// Definējiet ceļu, lai lasītu visus klientu datus
$ klienti = $ xml-> xpath ("/ klienti / klients");
// Izdrukājiet klientu vārdu
atbalss "

Klientu vārdu saraksts:

";
foreach ($ klienti kā $ klienti)
atbalss "$ klients-> vārds
";

// Definējiet ceļu visu HR nodaļas klientu datu lasīšanai
$ klienti = $ xml-> xpath ("/ klienti / klients [@ departaments = 'HR']");
// Izdrukājiet klientu e-pastu
atbalss "

Personāla nodaļas klienta e-pasts:

";
foreach ($ klienti kā $ klienti)
atbalss "$ klients-> e-pasts
";

?>

Izeja:

Pēc skripta palaišanas no servera parādīsies šāda izeja.

Secinājums:

Šajā apmācībā, izmantojot vairākus piemērus, ir izskaidroti divi dažādi veidi, kā izmantot funkciju xpath () XML dokumenta mezglu vērtību nolasīšanai, pamatojoties uz konkrēto ceļu vai ceļu ar nosacījumu, vai ceļu ar atribūta vērtību.

Kā izmantot AutoKey, lai automatizētu Linux spēles
AutoKey ir darbvirsmas automatizācijas lietderība operētājsistēmām Linux un X11, kas ieprogrammēta Python 3, GTK un Qt. Izmantojot skriptu un MACRO fu...
Kā parādīt FPS skaitītāju Linux spēlēs
Linux spēles ieguva lielu impulsu, kad Valve 2012. gadā paziņoja par Linux atbalstu Steam klientam un viņu spēlēm. Kopš tā laika daudzas AAA un indie ...
Kā lejupielādēt un atskaņot Sid Meier Civilization VI operētājsistēmā Linux
Ievads spēlē Civilization 6 ir mūsdienīga klasiskā koncepcija, kas ieviesta Age of Empires spēļu sērijā. Ideja bija diezgan vienkārša; jūs sāktu pašā ...