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.
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 "
Navn | Pris |
---|---|
$ 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 "
Navn | Pris |
---|---|
$ 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 "
Mærke | Navn | Pris |
---|---|---|
$ 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 = <<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.