php

Användning av xpath () i PHP

Användning av xpath () i PHP
XML-dokument används för att lagra en liten mängd data, och ibland krävs det att läsa det specifika innehållet i XML-dokument baserat på sökvärdet med hjälp av PHP-skript. xpath () -funktionen används för att analysera innehållet i ett XML-dokument. Denna funktion kan användas med simplexml_load_file () funktion eller genom att skapa objektet för SimpleXMLElement klass. Funktionen xpath () kan användas för att läsa de specifika XML-nodvärden som visas i denna handledning.

Syntax:

Syntaxen för xpath () -funktionen ges nedan.

array xpath (sträng $ sökväg)

Denna funktion har ett argument som tar ett sökvärde, och om sökvägen finns i någon nod i XML-dokumentet returneras nodens värde som en matris. Olika användningar av denna funktion har förklarats i nästa del av denna handledning.

Skapa XML-dokument:

Skapa en XML-fil med namnet Produkter.xml med följande innehåll på platsen där PHP-filen kommer att skapas för att analysera den här filen.




MN-56345
DELL
15 tum 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 tum HP-skärm
750

Användning av simplexml_load_file () fungera:

Funktionen xpath () med objektet som skapats av simplexml_load_file () -funktionen har visats i den här delen av den här självstudien.

Exempel 1: Läs de specifika XML-nodvärdena

Följande exempel visar hur man läser innehållet i de specifika nodvärdena från XML-dokumentet genom att definiera funktionsvägen xpath (). Objektvariabeln, $ xml skapas för att läsa de specifika nodvärdena för Produkter.xml fil. '/ PRODUKTER / PRODUKT / MÄRKE' används i xpath () för att läsa alla BRAND-nodvärden. '/ PRODUKTER / PRODUKT' används i xpath () för att läsa alla under nodvärden för PRODUKT knutpunkter. för varje loop används för att skriva ut värdena på NAMN och PRIS knutpunkter.

// Skapa objekt för att läsa XML-filen
$ xml = simplexml_load_file ('produkter.xml ');
// Sök i alla BRAND-nodvärden
$ brand = $ xml-> xpath ('/ PRODUCTS / PRODUCT / BRAND');
// Skriv ut matrisvärdena
eko "

Listan över varumärken är:

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

// Sök i alla PRODUKT-nodvärden
$ produkter = $ xml-> xpath ('/ PRODUKTER / PRODUKT');
eko "

Listan över produktnamn och pris:

";
eko "";
eko "";
// Skriv ut matrisvärdena
foreach ($ produkter som $ produkt)
eko "";

eko "
namnPris
$ produkt-> NAMN $$ produkt-> PRIS
";
?>

Produktion:

Följande utdata visas efter att man kört skriptet från servern.

Exempel 2: Läs de specifika XML-nodvärdena baserat på tillstånd

Följande exempel visar hur man läser de specifika nodvärdena baserat på tillståndet med funktionen xpath (). Sökvägen, '/ PRODUKTER / PRODUKT [PRIS> 600]', kommer att söka i värdena på alla barnnoder i PRODUKT nod där värdet på PRIS noden är mer än 600. för varje loop används för att skriva ut värdena på NAMN och PRIS knutpunkter.

// Skapa objekt för att läsa XML-filen
$ xml = simplexml_load_file ('produkter.xml ');
// Sök i produkter där prisvärdet är mer än 600
$ produkter = $ xml-> xpath ('/ PRODUKTER / PRODUKT [PRIS> 600]');
eko "

Listan över produktnamn och pris där priset är mer än 600:

";
eko "";
eko "";
// Skriv ut matrisvärdena
foreach ($ produkter som $ produkt)
eko "";

eko "
namnPris
$ produkt-> NAMN $$ produkt-> PRIS
";
?>

Produktion:

Följande utdata visas efter att man kört skriptet från servern.

Exempel 3: Läs de specifika XML-nodvärdena baserat på attribut

Följande exempel visar hur man läser de specifika nodvärdena baserat på attributvärdena för XML-dokumentets specifika nod genom att använda funktionen xpath (). Sökvägen, '/ PRODUKTER / PRODUKT [@ category = ”Monitor”]' kommer att söka i värdena på alla barnnoder i produkten nod, där kategoriattributets värde är Övervaka. för varje loop används för att skriva ut värdena på VARUMÄRKE, och PRIS knutpunkter.

// Skapa objekt för att läsa XML-filen
$ xml = simplexml_load_file ('produkter.xml ');
// Sök i produkterna där çategory-attributvärdet är 'Monitor'
$ produkter = $ xml-> xpath ('/ PRODUCTS / PRODUCT [@ category = "Monitor"]');
eko "

Listan över produktmärke, namn och pris baserat på kategori (Monitor):

";
eko "";
eko "";
// Skriv ut matrisvärdena
foreach ($ produkter som $ produkt)
eko "";

eko "
varumärkenamnPris
$ produkt-> MÄRKE$ produkt-> NAMN $$ produkt-> PRIS
";
?>

Produktion:

Följande utdata visas efter att man kört skriptet från servern.

Användning av SimpleXMLElement klass:

Användningen av xpath () -funktion genom att skapa SimpleXMLElement-klassobjektet har visats i denna del av denna handledning.

Exempel 4: Användning av xpath () genom att definiera XML-innehåll i en variabel

Följande exempel visar hur man läser XML-dokumentets nodvärden som deklareras i en variabel istället för filen. XML-innehåll lagras i $ xml_data variabel. “/ Kunder / kund” används som argumentvärdet för xpath () -funktionen för att läsa alla värden för barnnoderna i kund nod. Nästa, a för varje loop används för att skriva ut värdena på namnet nod. “/ Kunder / kund [@ department = 'HR']" används som argumentvärdet för en annan xpath () -funktion för att läsa alla värden på undernoderna i kundnoden där värdet på avdelning attribut är HR. Nästa, a för varje loop används för att skriva ut värdena på e-post nod.

$ xml_data = <<

Md. Mahbub
[e-postskyddad]


Farhana Zaman
[e-postskyddad]


XML;
// Definiera objekt för att läsa XML-data
$ xml = nya SimpleXMLElement ($ xml_data);
// Definiera sökväg för att läsa all kunddata
$ kunder = $ xml-> xpath ("/ kunder / kund");
// Skriv ut kundernas namn
eko "

Listan med kundnamn:

";
foreach ($ kunder som $ kund)
eko "$ kund-> namn
";

// Definiera sökväg för att läsa all kunddata från HR-avdelningen
$ kunder = $ xml-> xpath ("/ kunder / kund [@ department = 'HR']");
// Skriv ut kundernas e-post
eko "

Kundens e-postadress från HR-avdelningen:

";
foreach ($ kunder som $ kund)
eko "$ kund-> e-post
";

?>

Produktion:

Följande utdata visas efter att man kört skriptet från servern.

Slutsats:

Två olika sätt att använda xpath () -funktionen för att läsa XML-dokumentets nodvärden baserat på den specifika sökvägen eller sökvägen med villkoret eller sökvägen med attributvärde har förklarats i denna handledning med hjälp av flera exempel.

Mus Så här ändrar du muspekare och markörstorlek, färg och schema på Windows 10
Så här ändrar du muspekare och markörstorlek, färg och schema på Windows 10
Muspekaren och markören i Windows 10 är mycket viktiga aspekter av operativsystemet. Detta kan också sägas för andra operativsystem, så i sanning är d...
Gratis och öppen källkodsmotorer för utveckling av Linux-spel
Den här artikeln kommer att täcka en lista över gratis motorer med öppen källkod som kan användas för att utveckla 2D- och 3D-spel på Linux. Det finns...
Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider är det tolfte tillskottet till Tomb Raider-serien - en action-äventyrsspelfranchise skapad av Eidos Montreal. Spelet mottogs...