php

Verwendung von xpath() in PHP

Verwendung von xpath() in PHP
XML-Dokument wird verwendet, um eine kleine Datenmenge zu speichern, und manchmal ist es erforderlich, den bestimmten Inhalt des XML-Dokuments basierend auf dem Pfadwert mit einem PHP-Skript zu lesen. xpath()-Funktion wird verwendet, um den Inhalt eines XML-Dokuments zu analysieren. Diese Funktion kann mit verwendet werden simplexml_load_file() Funktion oder durch Erstellen des Objekts von SimpleXMLElement Klasse. Die Funktion xpath() kann verwendet werden, um die speziellen XML-Knotenwerte zu lesen, die in diesem Tutorial gezeigt werden.

Syntax:

Die Syntax der Funktion xpath() ist unten angegeben.

Array xpath(Zeichenfolge $Pfad)

Diese Funktion hat ein Argument, das einen Pfadwert annimmt, und wenn der Pfad in einem beliebigen Knoten des XML-Dokuments vorhanden ist, wird der Wert des Knotens als Array zurückgegeben. Die verschiedenen Verwendungen dieser Funktion werden im nächsten Teil dieses Tutorials erklärt.

XML-Dokument erstellen:

Erstellen Sie eine XML-Datei mit dem Namen Produkte.xml mit dem folgenden Inhalt an dem Ort, an dem die PHP-Datei erstellt wird, um diese Datei zu parsen.




MN-56345
DELL
15-Zoll-Dell-Monitor
700


HD-34278
SAMSUNG
1 TB Samsung-Festplatte
520


MS-67457
LOGITECH
Kabellose Logitech-Maus
100


MN-76453
PS
14-Zoll-HP-Monitor
750

Gebrauch von simplexml_load_file() Funktion:

Die Funktion xpath() mit dem von der Funktion simplexml_load_file() erstellten Objekt wurde in diesem Teil dieses Tutorials gezeigt.

Beispiel-1: Lesen Sie die jeweiligen XML-Knotenwerte aus

Das folgende Beispiel zeigt, wie Sie den Inhalt der jeweiligen Node-Werte aus dem XML-Dokument lesen, indem Sie die xpath()-Funktion path definieren. Die Objektvariable, $xml wird erstellt, um die spezifischen Knotenwerte der Produkte.xml Datei. '/PRODUKTE/PRODUKT/MARKE' wird in xpath() verwendet, um alle BRAND-Knotenwerte zu lesen. '/PRODUKTE/PRODUKT' wird in xpath() verwendet, um alle untergeordneten Knotenwerte von zu lesen PRODUKT Knoten. für jedes Schleife wird verwendet, um die Werte von zu drucken NAME und PREIS Knoten.

//Objekt zum Lesen der XML-Datei erstellen
$xml = simplexml_load_file('Produkte.xml');
//Alle BRAND-Knotenwerte durchsuchen
$marke = $xml->xpath('/PRODUKTE/PRODUKT/MARKE');
//Gibt die Array-Werte aus
Echo"

Die Liste der Markennamen sind:

";
foreach($marke als $name)
echo "$name
";

//Alle PRODUCT-Knotenwerte durchsuchen
$products = $xml->xpath('/PRODUCTS/PRODUCT');
Echo"

Die Liste der Produktnamen und Preise:

";
Echo"";
Echo"";
//Gibt die Array-Werte aus
foreach($products als $product)
Echo"";

Echo"
NamePreis
$produkt->NAME $$produkt->PREIS
";
?>

Ausgabe:

Die folgende Ausgabe wird angezeigt, nachdem das Skript vom Server ausgeführt wurde.

Beispiel-2: Lesen Sie die jeweiligen XML-Knotenwerte basierend auf der Bedingung

Das folgende Beispiel zeigt, wie die bestimmten Knotenwerte basierend auf der Bedingung mit der Funktion xpath() gelesen werden. Der Pfadwert, '/PRODUKTE/PRODUKT[PREIS > 600]', sucht die Werte aller untergeordneten Knoten von PRODUKT Knoten, wo der Wert von PREIS Knoten ist mehr als 600. für jedes Schleife wird verwendet, um die Werte von zu drucken NAME und PREIS Knoten.

//Objekt zum Lesen der XML-Datei erstellen
$xml = simplexml_load_file('Produkte.xml');
//Suche nach Produkten mit einem Preiswert von mehr als 600
$products = $xml->xpath('/PRODUKTE/PRODUKT[PREIS > 600]');
Echo"

Die Liste der Produktnamen und Preise, wenn der Preis mehr als 600 beträgt:

";
Echo"";
Echo"";
//Gibt die Array-Werte aus
foreach($products als $product)
Echo"";

Echo"
NamePreis
$produkt->NAME $$produkt->PREIS
";
?>

Ausgabe:

Die folgende Ausgabe wird angezeigt, nachdem das Skript vom Server ausgeführt wurde.

Beispiel-3: Lesen Sie die jeweiligen XML-Knotenwerte basierend auf dem Attribut

Das folgende Beispiel zeigt, wie Sie die bestimmten Knotenwerte basierend auf den Attributwerten des spezifischen Knotens des XML-Dokuments mithilfe der Funktion xpath() lesen. Der Pfadwert, '/PRODUCTS/PRODUCT[@category=”Monitor”]' sucht die Werte aller untergeordneten Knoten von das Produkt Knoten, wobei der Wert des Kategorieattributs ist Monitor. für jedes Schleife wird verwendet, um die Werte von zu drucken MARKENNAME, und PREIS Knoten.

//Objekt zum Lesen der XML-Datei erstellen
$xml = simplexml_load_file('Produkte.xml');
//Suchen Sie die Produkte, bei denen der kategory-Attributwert 'Monitor' ist
$products = $xml->xpath('/PRODUCTS/PRODUCT[@category="Monitor"]');
Echo"

Die Liste der Produktmarke, des Namens und des Preises basierend auf der Kategorie (Monitor):

";
Echo"";
Echo"";
//Gibt die Array-Werte aus
foreach($products als $product)
Echo"";

Echo"
MarkeNamePreis
$product->MARKE$produkt->NAME $$produkt->PREIS
";
?>

Ausgabe:

Die folgende Ausgabe wird angezeigt, nachdem das Skript vom Server ausgeführt wurde.

Gebrauch von SimpleXMLElement Klasse:

Die Verwendung der xpath()-Funktion durch Erstellen des SimpleXMLElement-Klassenobjekts wurde in diesem Teil dieses Tutorials gezeigt shown.

Beispiel-4: Verwendung von xpath() durch Definieren von XML-Inhalt in einer Variablen

Das folgende Beispiel zeigt, wie Sie die in einer Variablen deklarierten Knotenwerte des XML-Dokuments anstelle der Datei lesen. XML-Inhalte werden im $xml_data Variable. „/Kunden/Kunde“ wird als Argumentwert der Funktion xpath() verwendet, um alle Werte der untergeordneten Knoten des . zu lesen Kunde Knoten. Als nächstes a für jedes Schleife wird verwendet, um die Werte von zu drucken der Name Knoten. „/customers/customer[@department='HR']“ wird als Argumentwert einer anderen xpath()-Funktion verwendet, um alle Werte der untergeordneten Knoten des Kundenknotens zu lesen, bei denen der Wert von Abteilung Attribut ist HR. Nächster, ein für jeden Schleife wird verwendet, um die Werte der Email Knoten.

$xml_data = <<

Md. Mahbub
[E-Mail geschützt]


Farhana Zaman
[E-Mail geschützt]


XML;
//Objekt zum Lesen der XML-Daten definieren
$xml = neues SimpleXMLElement($xml_data);
//Pfad zum Lesen aller Kundendaten definieren
$customers = $xml->xpath("/customers/customer");
//Drucken Sie den Namen des Kunden
Echo"

Die Liste der Kundennamen:

";
foreach($Kunden als $Kunde)
echo "$kunde->name
";

//Pfad zum Lesen aller Kundendaten der Personalabteilung definieren
$customers = $xml->xpath("/customers/customer[@department='HR']");
//Drucken Sie die E-Mail der Kunden
Echo"

Die E-Mail-Adresse des Kunden der Personalabteilung:

";
foreach($Kunden als $Kunde)
echo "$Kunde->E-Mail
";

?>

Ausgabe:

Die folgende Ausgabe wird angezeigt, nachdem das Skript vom Server ausgeführt wurde.

Fazit:

Zwei verschiedene Möglichkeiten, die xpath()-Funktion zu verwenden, um die Knotenwerte des XML-Dokuments basierend auf dem spezifischen Pfad oder dem Pfad mit der Bedingung oder dem Pfad mit Attributwert zu lesen, wurden in diesem Tutorial anhand mehrerer Beispiele erläutert multiple.

So installieren und spielen Sie Doom unter Linux
Einführung in Doom Die Doom-Serie entstand in den 90er Jahren nach der Veröffentlichung des ursprünglichen Doom. Es war sofort ein Hit und seitdem hat...
Vulkan für Linux-Benutzer
Mit jeder neuen Grafikkartengeneration stoßen Spieleentwickler an die Grenzen der grafischen Wiedergabetreue und kommen dem Fotorealismus einen Schrit...
OpenTTD vs. Simutrans
Das Erstellen einer eigenen Transportsimulation kann Spaß machen, entspannend und äußerst verlockend sein. Deshalb sollten Sie so viele Spiele wie mög...