php

Bruk av xpath () i PHP

Bruk av xpath () i PHP
XML-dokument brukes til å lagre en liten mengde data, og noen ganger er det nødvendig å lese det spesielle innholdet i XML-dokument basert på baneverdien ved hjelp av PHP-skript. xpath () -funksjonen brukes til å analysere innholdet i et XML-dokument. Denne funksjonen kan brukes ved å bruke simplexml_load_file () funksjon eller ved å lage objektet til SimpleXMLElement klasse. Funksjonen xpath () kan brukes til å lese de spesielle XML-nodeverdiene som vises i denne opplæringen.

Syntaks:

Syntaksen til xpath () -funksjonen er gitt nedenfor.

array xpath (streng $ bane)

Denne funksjonen har ett argument som tar en baneverdi, og hvis banen eksisterer i en hvilken som helst node i XML-dokumentet, vil verdien av noden bli returnert som en matrise. Ulike bruksområder for denne funksjonen har forklart i neste del av denne veiledningen.

Opprett XML-dokument:

Opprett en XML-fil med navnet Produkter.xml med følgende innhold på stedet der PHP-filen skal opprettes for å analysere denne filen.




MN-56345
DELL
15-tommers Dell-skjerm
700


HD-34278
SAMSUNG
1 TB Samsung HDD
520


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


MN-76453
HP
14 tommer HP-skjerm
750

Bruken av simplexml_load_file () funksjon:

Funksjonen xpath () med objektet opprettet av simplexml_load_file () -funksjonen har vist i denne delen av denne opplæringen.

Eksempel 1: Les de spesielle XML-nodeverdiene

Følgende eksempel viser hvordan du leser innholdet av de spesifikke nodeverdiene fra XML-dokumentet ved å definere xpath () -funksjonsstien. Objektvariabelen, $ xml er opprettet for å lese de spesifikke nodeverdiene til Produkter.xml fil. '/ PRODUKTER / PRODUKT / MERKE' brukes i xpath () for å lese alle BRAND-nodeverdier. '/ PRODUKTER / PRODUKT' brukes i xpath () for å lese alle underverdiene til barn PRODUKT noder. for hver loop brukes til å skrive ut verdiene på NAVN og PRIS noder.

// Opprett objekt for å lese XML-filen
$ xml = simplexml_load_file ('produkter.xml ');
// Søk i alle BRAND-nodeverdier
$ merke = $ xml-> xpath ('/ PRODUKTER / PRODUKT / MERKE');
// Skriv ut matrixverdiene
ekko "

Listen over merkenavn er:

";
foreach ($ merke som $ navn)
ekko "$ name
";

// Søk i alle PRODUKT-nodeverdier
$ produkter = $ xml-> xpath ('/ PRODUKTER / PRODUKT');
ekko "

Listen over produktnavn og pris:

";
ekko "";
ekko "";
// Skriv ut matrixverdiene
foreach ($ produkter som $ produkt)
ekko "";

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

Produksjon:

Følgende utdata vises når du har kjørt skriptet fra serveren.

Eksempel 2: Les de spesielle XML-nodeverdiene basert på tilstand

Følgende eksempel viser hvordan du leser bestemte nodeverdier basert på tilstanden ved hjelp av xpath () -funksjonen. Baneverdien, '/ PRODUKTER / PRODUKT [PRIS> 600]', vil søke i verdiene til alle underordnede noder i PRODUKT node der verdien av PRIS node er mer enn 600. for hver loop brukes til å skrive ut verdiene på NAVN og PRIS noder.

// Opprett objekt for å lese XML-filen
$ xml = simplexml_load_file ('produkter.xml ');
// Søk i produktene der prisverdien er mer enn 600
$ produkter = $ xml-> xpath ('/ PRODUKTER / PRODUKT [PRIS> 600]');
ekko "

Listen over produktnavn og pris der prisen er mer enn 600:

";
ekko "";
ekko "";
// Skriv ut matrixverdiene
foreach ($ produkter som $ produkt)
ekko "";

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

Produksjon:

Følgende utdata vises når du har kjørt skriptet fra serveren.

Eksempel 3: Les de spesielle XML-nodeverdiene basert på attributt

Følgende eksempel viser hvordan du leser bestemte nodeverdier basert på attributtverdiene til XML-dokumentets spesifikke node ved hjelp av xpath () -funksjonen. Baneverdien, '/ PRODUKTER / PRODUKT [@ category = ”Monitor”]' vil søke i verdiene til alle barnekoder av produktet node, der kategoriattributtets verdi er Observere. for hver loop brukes til å skrive ut verdiene på MERKENAVN, og PRIS noder.

// Opprett objekt for å lese XML-filen
$ xml = simplexml_load_file ('produkter.xml ');
// Søk i produktene der attributtverdien çategory er 'Monitor'
$ produkter = $ xml-> xpath ('/ PRODUCTS / PRODUCT [@ category = "Monitor"]');
ekko "

Listen over produktmerke, navn og pris basert på kategori (Monitor):

";
ekko "";
ekko "";
// Skriv ut matrixverdiene
foreach ($ produkter som $ produkt)
ekko "";

ekko "
MerkeNavnPris
$ produkt-> MERKE$ produkt-> NAVN $$ produkt-> PRIS
";
?>

Produksjon:

Følgende utdata vises når du har kjørt skriptet fra serveren.

Bruken av SimpleXMLElement klasse:

Bruken av xpath () -funksjonen ved å lage SimpleXMLElement-klasseobjektet har vist i denne delen av denne opplæringen.

Eksempel 4: Bruk av xpath () ved å definere XML-innhold i en variabel

Følgende eksempel viser hvordan du leser XML-dokumentets nodeverdier deklarert i en variabel i stedet for filen. XML-innhold er lagret i $ xml_data variabel. “/ Kunder / kunde” brukes som argumentverdien til xpath () -funksjonen for å lese alle verdiene til undernodene til kunde node. Neste, a for hver loop brukes til å skrive ut verdiene på navnet node. “/ Kunder / kunde [@ department = 'HR']" brukes som argumentverdi for en annen xpath () -funksjon for å lese alle verdiene til undernodene til kundenoden der verdien av avdeling attributt er HR. Neste, a for hver loop brukes til å skrive ut verdiene til e-post node.

$ xml_data = <<

Md. Mahbub
[e-postbeskyttet]


Farhana Zaman
[e-postbeskyttet]


XML;
// Definer objektet for å lese XML-dataene
$ xml = ny SimpleXMLElement ($ xml_data);
// Definer vei for å lese alle kundedata
$ kunder = $ xml-> xpath ("/ kunder / kunde");
// Skriv ut navnet på kundene
ekko "

Listen over kundenavn:

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

// Definer vei for å lese alle kundedata fra HR-avdelingen
$ kunder = $ xml-> xpath ("/ kunder / kunde [@ department = 'HR']");
// Skriv ut e-posten til kundene
ekko "

Kundens e-post fra HR-avdelingen:

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

?>

Produksjon:

Følgende utdata vises når du har kjørt skriptet fra serveren.

Konklusjon:

To forskjellige måter å bruke xpath () -funksjonen til å lese XML-dokumentets nodeverdier basert på den spesifikke banen eller banen med tilstanden eller banen med attributtverdi, er forklart i denne veiledningen ved å bruke flere eksempler.

Hvordan installere og spille Doom på Linux
Introduksjon til Doom Doom-serien stammer fra 90-tallet etter utgivelsen av den originale Doom. Det ble en øyeblikkelig suksess, og fra den tiden og u...
Vulkan for Linux-brukere
Med hver nye generasjon grafikkort ser vi spillutviklere skyve grensene for grafisk troskap og komme et skritt nærmere fotorealisme. Men til tross for...
OpenTTD vs Simutrans
Å lage din egen transportsimulering kan være morsom, avslappende og ekstremt fristende. Derfor må du sørge for at du prøver så mange spill som mulig f...