php

Gebruik van xpath() in PHP

Gebruik van xpath() in PHP
XML-document wordt gebruikt om een ​​kleine hoeveelheid gegevens op te slaan, en soms is het nodig om de specifieke inhoud van het XML-document te lezen op basis van de padwaarde met behulp van PHP-script. xpath() functie wordt gebruikt om de inhoud van een XML-document te ontleden. Deze functie kan worden gebruikt door gebruik te maken van simplexml_load_file() functie of door het maken van het object van SimpleXMLElement klasse. De functie xpath() kan worden gebruikt om de specifieke XML-knooppuntwaarden te lezen die in deze zelfstudie worden getoond.

Syntaxis:

De syntaxis van de xpath()-functie wordt hieronder gegeven:.

matrix xpath(string $path)

Deze functie heeft één argument dat een padwaarde aanneemt, en als het pad in een knooppunt van het XML-document bestaat, wordt de waarde van het knooppunt geretourneerd als een array. Verschillende toepassingen van deze functie zijn uitgelegd in het volgende deel van deze tutorial.

XML-document maken:

Maak een XML-bestand met de naam producten.xml met de volgende inhoud op de locatie waar het PHP-bestand zal worden gemaakt om dit bestand te ontleden:.




MN-56345
DELL
15 inch Dell-monitor
700


HD-34278
SAMSUNG
1 TB Samsung HDD
520


MS-67457
LOGITECH
Logitech draadloze muis
100


MN-76453
HP
14 inch HP-monitor
750

Gebruik van simplexml_load_file() functie:

De functie xpath() met het object dat is gemaakt door de functie simplexml_load_file() is in dit deel van deze zelfstudie weergegeven.

Voorbeeld-1: Lees de specifieke XML-knooppuntwaarden

Het volgende voorbeeld laat zien hoe u de inhoud van de specifieke knooppuntwaarden uit het XML-document kunt lezen door het functiepad xpath() te definiëren. De objectvariabele, $xml is gemaakt om de specifieke knooppuntwaarden van de . te lezen producten.xml het dossier. '/PRODUCTEN/PRODUCT/MERK' wordt gebruikt in xpath() om alle BRAND-knooppuntwaarden te lezen. '/PRODUCTEN/PRODUCT' wordt gebruikt in xpath() om alle onderliggende node-waarden van . te lezen PRODUCT knooppunten. foreach lus wordt gebruikt om de waarden van . af te drukken NAAM en PRIJS knooppunten.

//Maak object om het XML-bestand te lezen
$xml = simplexml_load_file('producten.xml');
//Zoek in alle BRAND-knooppuntwaarden
$brand = $xml->xpath('/PRODUCTS/PRODUCT/BRAND');
//Druk de matrixwaarden af
echo "

De lijst met merknamen is:

";
foreach($merk als $naam)
echo "$naam
";

//Zoek in alle PRODUCT-knooppuntwaarden
$products = $xml->xpath('/PRODUCTS/PRODUCT');
echo "

De lijst met productnaam en prijs:

";
echo "";
echo "";
//Druk de matrixwaarden af
foreach($producten als $product)
echo "";

echo "
NaamPrijs
$product->NAAM $$product->PRIJS
";
?>

Uitgang:

De volgende uitvoer zal verschijnen nadat het script vanaf de server is uitgevoerd:.

Voorbeeld-2: Lees de specifieke XML-knooppuntwaarden op basis van voorwaarde

Het volgende voorbeeld laat zien hoe u de specifieke knooppuntwaarden kunt lezen op basis van de voorwaarde met behulp van de xpath()-functie. De padwaarde, '/PRODUCTEN/PRODUCT[PRIJS > 600]', zoekt de waarden van alle onderliggende knooppunten van PRODUCT knooppunt waar de waarde van PRIJS knoop is meer dan 600. foreach lus wordt gebruikt om de waarden van . af te drukken NAAM en PRIJS knooppunten.

//Maak object om het XML-bestand te lezen
$xml = simplexml_load_file('producten.xml');
//Zoek de producten waar de prijswaarde meer is dan 600
$products = $xml->xpath('/PRODUCTS/PRODUCT[PRICE > 600]');
echo "

De lijst met productnaam en prijs waar de prijs meer dan 600 is:

";
echo "";
echo "";
//Druk de matrixwaarden af
foreach($producten als $product)
echo "";

echo "
NaamPrijs
$product->NAAM $$product->PRIJS
";
?>

Uitgang:

De volgende uitvoer zal verschijnen nadat het script vanaf de server is uitgevoerd:.

Voorbeeld-3: Lees de specifieke XML-knooppuntwaarden op basis van attribuut

Het volgende voorbeeld laat zien hoe u de specifieke knooppuntwaarden kunt lezen op basis van de kenmerkwaarden van het specifieke knooppunt van het XML-document met behulp van de xpath()-functie. De padwaarde, '/PRODUCTEN/PRODUCT[@category=”Monitor”]' zoekt de waarden van alle onderliggende knooppunten van het product knooppunt, waar de waarde van het categoriekenmerk is Monitor. foreach lus wordt gebruikt om de waarden van . af te drukken MERKNAAM, en PRIJS knooppunten.

//Maak object om het XML-bestand te lezen
$xml = simplexml_load_file('producten.xml');
//Zoek de producten waarbij de category-kenmerkwaarde 'Monitor' is
$products = $xml->xpath('/PRODUCTS/PRODUCT[@category="Monitor"]');
echo "

De lijst met productmerk, naam en prijs op basis van categorie (Monitor):

";
echo "";
echo "";
//Druk de matrixwaarden af
foreach($producten als $product)
echo "";

echo "
MerkNaamPrijs
$product->MERK$product->NAAM $$product->PRIJS
";
?>

Uitgang:

De volgende uitvoer zal verschijnen nadat het script vanaf de server is uitgevoerd:.

Gebruik van SimpleXMLElement klasse:

Het gebruik van de functie xpath() door het maken van het klasseobject SimpleXMLElement is in dit deel van deze zelfstudie aangetoond:.

Voorbeeld-4: Gebruik van xpath() door XML-inhoud in een variabele te definiëren

Het volgende voorbeeld laat zien hoe u de knooppuntwaarden van het XML-document kunt lezen die zijn gedeclareerd in een variabele in plaats van in het bestand. XML-inhoud wordt opgeslagen in de $xml_data variabele. “/klanten/klant” wordt gebruikt als de argumentwaarde van de xpath()-functie om alle waarden van de onderliggende knooppunten van de . te lezen klant knooppunt. Volgende, een voor elk lus wordt gebruikt om de waarden van . af te drukken de naam knooppunt. “/customers/customer[@department='HR']” wordt gebruikt als de argumentwaarde van een andere xpath()-functie om alle waarden van de onderliggende knooppunten van het klantknooppunt te lezen waarbij de waarde van afdeling attribuut is HR. De volgende, een voor elk lus wordt gebruikt om de waarden van de . af te drukken e-mail knooppunt.

$xml_data = <<

Md. Mahbub
[e-mail beveiligd]


Farhana Zaman
[e-mail beveiligd]


xml;
//Definieer object om de XML-gegevens te lezen
$xml = nieuw SimpleXMLElement($xml_data);
//Definieer pad om alle klantgegevens te lezen
$klanten = $xml->xpath("/klanten/klant");
//Druk de naam van de klanten af
echo "

De lijst met klantnamen:

";
foreach($klanten als $klant)
echo "$klant->naam
";

//Definieer pad om alle klantgegevens van de HR-afdeling te lezen
$customers = $xml->xpath("/customers/customer[@department='HR']");
//Print de e-mail van de klanten
echo "

Het e-mailadres van de klant van de HR-afdeling:

";
foreach($klanten als $klant)
echo "$klant->e-mail
";

?>

Uitgang:

De volgende uitvoer zal verschijnen nadat het script vanaf de server is uitgevoerd:.

Conclusie:

Twee verschillende manieren om de xpath()-functie te gebruiken om de knooppuntwaarden van het XML-document te lezen op basis van het specifieke pad of het pad met de voorwaarde of het pad met attribuutwaarde zijn in deze zelfstudie uitgelegd aan de hand van meerdere voorbeelden.

Met WinMouse kunt u de beweging van de muisaanwijzer op Windows-pc aanpassen en verbeteren
Als u de standaardfuncties van uw muisaanwijzer wilt verbeteren, gebruik dan freeware WinMuis. Het voegt meer functies toe om u te helpen het meeste u...
Linkermuisknop werkt niet op Windows 10
Als u een speciale muis gebruikt met uw laptop of desktopcomputer, maar de linkermuisknop werkt niet not op Windows 10/8/7 om wat voor reden dan ook, ...
Cursor springt of beweegt willekeurig tijdens het typen in Windows 10
Als u merkt dat uw muiscursor vanzelf springt of beweegt, automatisch, willekeurig tijdens het typen op een Windows-laptop of -computer, dan kunnen en...