php

Brug af xpath () i PHP

Brug af xpath () i PHP
XML-dokument bruges til at gemme en lille mængde data, og nogle gange er det nødvendigt at læse det særlige indhold af XML-dokument baseret på stiværdien ved hjælp af PHP-script. xpath () -funktionen bruges til at analysere indholdet af et XML-dokument. Denne funktion kan bruges ved hjælp af simplexml_load_file () funktion eller ved at oprette objektet til SimpleXMLElement klasse. Funktionen xpath () kan bruges til at læse de specifikke XML-nodeværdier, der vises i denne vejledning.

Syntaks:

Syntaksen for xpath () - funktionen er angivet nedenfor.

array xpath (streng $ sti)

Denne funktion har et argument, der tager en stiværdi, og hvis stien findes i en hvilken som helst node i XML-dokumentet, returneres nodens værdi som en matrix. Forskellige anvendelser af denne funktion har forklaret i den næste del af denne vejledning.

Opret XML-dokument:

Opret en XML-fil med navnet Produkter.xml med følgende indhold på det sted, hvor PHP-filen oprettes for at analysere denne fil.




MN-56345
DELL
15 tommer Dell-skærm
700


HD-34278
SAMSUNG
1 TB Samsung HDD
520


MS-67457
LOGITECH
Logitech trådløs mus
100


MN-76453
HP
14 tommer HP skærm
750

Anvendelse af simplexml_load_file () fungere:

Funktionen xpath () med objektet oprettet af simplexml_load_file () -funktionen har vist i denne del af denne tutorial.

Eksempel 1: Læs de specifikke XML-nodeværdier

Følgende eksempel viser, hvordan man læser indholdet af de bestemte knudepunkter fra XML-dokumentet ved at definere stien xpath (). Objektvariablen, $ xml er oprettet for at læse de specifikke nodeværdier for Produkter.xml fil. '/ PRODUKTER / PRODUKT / MÆRKE' bruges i xpath () til at læse alle BRAND-nodeværdier. '/ PRODUKTER / PRODUKT' bruges i xpath () til at læse alle underordnede nodeværdier af PRODUKT noder. for hver loop bruges til at udskrive værdierne af NAVN og PRIS noder.

// Opret objekt for at læse XML-filen
$ xml = simplexml_load_file ('produkter.xml ');
// Søg i alle BRAND-nodeværdier
$ brand = $ xml-> xpath ('/ PRODUKTER / PRODUKT / MÆRKE');
// Udskriv matrixværdierne
ekko "

Listen over mærker er:

";
foreach ($ brand som $ name)
ekko "$ name
";

// Søg i alle PRODUKT-nodeværdier
$ produkter = $ xml-> xpath ('/ PRODUKTER / PRODUKT');
ekko "

Listen over produktnavn og pris:

";
ekko "";
ekko "";
// Udskriv matrixværdierne
foreach ($ produkter som $ produkt)
ekko "";

ekko "
NavnPris
$ produkt-> NAVN $$ produkt-> PRIS
";
?>

Produktion:

Følgende output vises efter kørsel af scriptet fra serveren.

Eksempel 2: Læs de specifikke XML-nodeværdier baseret på tilstand

Det følgende eksempel viser, hvordan man læser de bestemte nodeværdier baseret på tilstanden ved hjælp af xpath () -funktionen. Stien værdi, '/ PRODUKTER / PRODUKT [PRIS> 600]', vil søge i værdierne på alle underordnede noder i PRODUKT node, hvor værdien af PRIS node er mere end 600. for hver loop bruges til at udskrive værdierne af NAVN og PRIS noder.

// Opret objekt for at læse XML-filen
$ xml = simplexml_load_file ('produkter.xml ');
// Søg i produkter, hvor prisværdien er mere end 600
$ produkter = $ xml-> xpath ('/ PRODUKTER / PRODUKT [PRIS> 600]');
ekko "

Listen over produktnavn og pris, hvor prisen er mere end 600:

";
ekko "";
ekko "";
// Udskriv matrixværdierne
foreach ($ produkter som $ produkt)
ekko "";

ekko "
NavnPris
$ produkt-> NAVN $$ produkt-> PRIS
";
?>

Produktion:

Følgende output vises efter kørsel af scriptet fra serveren.

Eksempel 3: Læs de specifikke XML-nodeværdier baseret på attribut

Følgende eksempel viser, hvordan man læser de bestemte knudepunktværdier baseret på attributværdierne for XML-dokumentets specifikke knude ved hjælp af funktionen xpath (). Stien værdi, '/ PRODUKTER / PRODUKT [@ category = ”Monitor”]' vil søge i værdierne på alle underordnede noder i produktet node, hvor kategoriattributts værdi er Overvåge. for hver loop bruges til at udskrive værdierne af MÆRKE NAVN, og PRIS noder.

// Opret objekt for at læse XML-filen
$ xml = simplexml_load_file ('produkter.xml ');
// Søg i produkterne, hvor çategory-attributværdien er 'Monitor'
$ produkter = $ xml-> xpath ('/ PRODUCTS / PRODUCT [@ category = "Monitor"]');
ekko "

Listen over produktmærke, navn og pris baseret på kategori (skærm):

";
ekko "";
ekko "";
// Udskriv matrixværdierne
foreach ($ produkter som $ produkt)
ekko "";

ekko "
MærkeNavnPris
$ produkt-> MÆRKE$ produkt-> NAVN $$ produkt-> PRIS
";
?>

Produktion:

Følgende output vises efter kørsel af scriptet fra serveren.

Anvendelse af SimpleXMLElement klasse:

Anvendelsen af ​​xpath () -funktion ved at oprette SimpleXMLElement-klasseobjektet har vist i denne del af denne selvstudie.

Eksempel 4: Brug af xpath () ved at definere XML-indhold i en variabel

Det følgende eksempel viser, hvordan man læser XML-dokumentets nodeværdier, der er deklareret i en variabel i stedet for filen. XML-indhold er gemt i $ xml_data variabel. “/ Kunder / kunde” bruges som argumentværdien af ​​xpath () - funktionen til at læse alle værdier for barnets noder i kunde knude. Dernæst a for hver loop bruges til at udskrive værdierne af navnet knude. “/ Kunder / kunde [@ department = 'HR']" bruges som argumentværdi for en anden xpath () -funktion til at læse alle værdier for de underordnede noder i kundeknudepunktet, hvor værdien af afdeling attribut er HR. Næste, a for hver loop bruges til at udskrive værdierne for e-mail knude.

$ xml_data = <<

Md. Mahbub
[e-mail beskyttet]


Farhana Zaman
[e-mail beskyttet]


XML;
// Definer objekt til at læse XML-data
$ xml = nyt SimpleXMLElement ($ xml_data);
// Definer sti til at læse alle kundedata
$ kunder = $ xml-> xpath ("/ kunder / kunde");
// Udskriv navnet på kunderne
ekko "

Listen over kundenavne:

";
foreach ($ kunder som $ kunde)
ekko "$ kunde-> navn
";

// Definer sti til at læse alle kundedata fra HR-afdelingen
$ kunder = $ xml-> xpath ("/ kunder / kunde [@ department = 'HR']");
// Udskriv e-mail fra kunderne
ekko "

Kundens e-mail fra HR-afdelingen:

";
foreach ($ kunder som $ kunde)
ekko "$ kunde-> e-mail
";

?>

Produktion:

Følgende output vises efter kørsel af scriptet fra serveren.

Konklusion:

To forskellige måder at bruge xpath () -funktionen til at læse XML-dokumentets nodeværdier baseret på den specifikke sti eller stien med tilstanden eller stien med attributværdi er blevet forklaret i denne vejledning ved hjælp af flere eksempler.

Mus Midterste museknap fungerer ikke i Windows 10
Midterste museknap fungerer ikke i Windows 10
Det midterste museknap hjælper dig med at rulle gennem lange websider og skærme med en masse data. Hvis det stopper, vil du ende med at bruge tastatur...
Mus Sådan ændres venstre og højre museknap på Windows 10-pc
Sådan ændres venstre og højre museknap på Windows 10-pc
Det er en ganske normal, at alle computermusenheder er ergonomisk designet til højrehåndede brugere. Men der er musenheder til rådighed, der er specie...
Mus Efterlig museklik ved at svæve ved hjælp af Clickless Mouse i Windows 10
Efterlig museklik ved at svæve ved hjælp af Clickless Mouse i Windows 10
Brug af en mus eller et tastatur i den forkerte kropsholdning af overdreven brug kan resultere i mange sundhedsmæssige problemer, herunder stamme, kar...