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.
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 "
namn | Pris |
---|---|
$ 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 "
namn | Pris |
---|---|
$ 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 "
varumärke | namn | Pris |
---|---|---|
$ 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 = <<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.