php

Utilizarea xpath () în PHP

Utilizarea xpath () în PHP
Documentul XML este utilizat pentru a stoca o cantitate mică de date și, uneori, este necesar să citiți conținutul particular al documentului XML pe baza valorii căii folosind scriptul PHP. Funcția xpath () este utilizată pentru a analiza conținutul unui document XML. Această funcție poate fi utilizată folosind simplexml_load_file () funcție sau prin crearea obiectului de SimpleXMLElement clasă. Funcția xpath () poate fi utilizată pentru a citi valorile nodului XML specifice prezentate în acest tutorial.

Sintaxă:

Sintaxa funcției xpath () este dată mai jos.

matrice xpath (șir $ cale)

Această funcție are un argument care ia o valoare de cale și, dacă calea există în orice nod al documentului XML, atunci valoarea nodului va fi returnată ca matrice. Diferite utilizări ale acestei funcții au fost explicate în următoarea parte a acestui tutorial.

Creați un document XML:

Creați un fișier XML numit produse.xml cu următorul conținut pe locația în care va fi creat fișierul PHP pentru a analiza acest fișier.




MN-56345
MÂNA
Monitor Dell de 15 inci
700


HD-34278
SAMSUNG
HDD Samsung de 1 TB
520


MS-67457
LOGITECH
Mouse fără fir Logitech
100


MN-76453
HP
Monitor HP de 14 inci
750

Utilizarea de simplexml_load_file () funcţie:

Funcția xpath () cu obiectul creat de funcția simplexml_load_file () s-a arătat în această parte a acestui tutorial.

Exemplu-1: Citiți valorile nodului XML specifice

Următorul exemplu arată cum să citiți conținutul anumitor valori ale nodului din documentul XML definind calea funcției xpath (). Variabila obiect, $ xml este creat pentru a citi valorile specifice ale nodului produse.xml fişier. „/ PRODUSE / PRODUS / MARCA” este utilizat în xpath () pentru a citi toate valorile nodului BRAND. „/ PRODUSE / PRODUS” este utilizat în xpath () pentru a citi toate valorile nodului copil al PRODUS noduri. pentru fiecare bucla este utilizată pentru a imprima valorile NUME și PREȚ noduri.

// Creați obiect pentru a citi fișierul XML
$ xml = simplexml_load_file ('products.xml ');
// Căutați toate valorile nodului BRAND
$ brand = $ xml-> xpath ('/ PRODUSE / PRODUS / MARCA');
// Imprimați valorile matricei
ecou "

Lista numelor de marcă este:

";
foreach (marca $ ca nume $)
ecou "$ nume
";

// Căutați toate valorile nodului PRODUCT
$ produse = $ xml-> xpath ('/ PRODUSE / PRODUS');
ecou "

Lista numelui și prețului produsului:

";
ecou "";
ecou "";
// Imprimați valorile matricei
foreach ($ produse ca $ produs)
ecou "";

ecou "
NumePreț
$ produs-> NUME $$ produs-> PREȚ
";
?>

Ieșire:

Următoarea ieșire va apărea după executarea scriptului de pe server.

Exemplul-2: Citiți valorile nodului XML specifice pe baza condiției

Următorul exemplu arată cum să citiți valorile de nod specifice pe baza condiției folosind funcția xpath (). Valoarea căii, „/ PRODUSE / PRODUS [PREȚ> 600]”, va căuta valorile tuturor nodurilor copil din PRODUS nod unde valoarea lui PREȚ nodul este mai mare de 600. pentru fiecare bucla este utilizată pentru a imprima valorile NUME și PREȚ noduri.

// Creați obiect pentru a citi fișierul XML
$ xml = simplexml_load_file ('products.xml ');
// Căutați produsele în care valoarea prețului este mai mare de 600
$ produse = $ xml-> xpath ('/ PRODUSE / PRODUS [PRET> 600]');
ecou "

Lista denumirii și prețului produsului în cazul în care prețul este mai mare de 600:

";
ecou "";
ecou "";
// Imprimați valorile matricei
foreach ($ produse ca $ produs)
ecou "";

ecou "
NumePreț
$ produs-> NUME $$ produs-> PREȚ
";
?>

Ieșire:

Următoarea ieșire va apărea după executarea scriptului de pe server.

Exemplu-3: Citiți valorile nodului XML specifice pe baza atributului

Următorul exemplu arată cum să citiți valorile de nod specifice pe baza valorilor de atribut ale nodului specific al documentului XML utilizând funcția xpath (). Valoarea căii, '/ PRODUCTS / PRODUCT [@ category = ”Monitor”]' va căuta valorile tuturor nodurilor copil din produsul nod, unde este valoarea atributului de categorie Monitor. pentru fiecare bucla este utilizată pentru a imprima valorile MARCA, NUME, și PREȚ noduri.

// Creați obiect pentru a citi fișierul XML
$ xml = simplexml_load_file ('products.xml ');
// Căutați produsele în care valoarea atributului çategory este „Monitor”
$ produse = $ xml-> xpath ('/ PRODUCTS / PRODUCT [@ category = "Monitor"]');
ecou "

Lista mărcii, denumirii și prețului produsului în funcție de categorie (Monitor):

";
ecou "";
ecou "";
// Imprimați valorile matricei
foreach ($ produse ca $ produs)
ecou "";

ecou "
MarcaNumePreț
$ produs-> MARCA$ produs-> NUME $$ produs-> PREȚ
";
?>

Ieșire:

Următoarea ieșire va apărea după executarea scriptului de pe server.

Utilizarea de SimpleXMLElement clasă:

Utilizările funcției xpath () prin crearea obiectului clasei SimpleXMLElement s-au arătat în această parte a acestui tutorial.

Exemplu-4: Utilizarea xpath () prin definirea conținutului XML într-o variabilă

Următorul exemplu arată cum să citiți valorile nodului documentului XML declarate într-o variabilă în locul fișierului. Conținutul XML este stocat în $ xml_data variabil. „/ Clienți / client” este folosit ca valoare argument a funcției xpath () pentru a citi toate valorile nodurilor copil ale fișierului client nodul. Apoi, a pentru fiecare bucla este utilizată pentru a imprima valorile numele nodul. „/ Customers / customer [@ department = 'HR']” este folosit ca valoarea argumentului unei alte funcții xpath () pentru a citi toate valorile nodurilor copil ale nodului client în care valoarea departament atributul este HR. Următorul, a pentru fiecare bucla este utilizată pentru a imprima valorile fișierului e-mail nodul.

$ xml_data = <<

Md. Mahbub
[e-mail protejat]


Farhana Zaman
[e-mail protejat]


XML;
// Definiți obiectul pentru a citi datele XML
$ xml = new SimpleXMLElement ($ xml_data);
// Definiți calea pentru a citi toate datele clienților
$ clienți = $ xml-> xpath ("/ clienți / client");
// Imprimați numele clienților
ecou "

Lista numelor clienților:

";
foreach ($ clienți ca $ clienți)
ecou „$ client-> nume
";

// Definiți calea pentru a citi toate datele clienților din departamentul de resurse umane
$ clienți = $ xml-> xpath ("/ clienți / client [@ departament = 'HR']");
// Imprimați e-mailul clienților
ecou "

E-mailul clientului din departamentul de resurse umane:

";
foreach ($ clienți ca $ clienți)
ecou „$ client-> e-mail
";

?>

Ieșire:

Următoarea ieșire va apărea după executarea scriptului de pe server.

Concluzie:

Două moduri diferite de a utiliza funcția xpath () pentru a citi valorile nodului documentului XML bazate pe calea specifică sau calea cu condiția sau calea cu valoarea atributului au fost explicate în acest tutorial folosind exemple multiple.

Jocuri HD remasterizate pentru Linux care nu au avut niciodată lansare Linux mai devreme
Mulți dezvoltatori și editori de jocuri vin cu remasterizarea HD a jocurilor vechi pentru a prelungi durata de viață a francizei, vă rog fanilor să so...
Cum se utilizează AutoKey pentru automatizarea jocurilor Linux
AutoKey este un utilitar de automatizare desktop pentru Linux și X11, programat în Python 3, GTK și Qt. Folosind funcțiile sale de scriptare și MACRO,...
Cum se arată FPS Counter în jocurile Linux
Jocurile cu Linux au primit un impuls major când Valve a anunțat suportul Linux pentru clientul Steam și jocurile acestora în 2012. De atunci, multe j...