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 Sie ElastAlert mit Elasticsearch unter Ubuntu
Wenn Sie riesige Datenmengen verwalten müssen, dann wünschen Sie sich eines Tages ein Tool, das einfach auf Anomalien oder Inkonsistenzen in den Daten...
Anpassen des oberen Bedienfelds zum Hinzufügen von Symbolen und Desktop anzeigen in Ubuntu
Das obere Bedienfeld von Ubuntu (auch als Taskleiste bekannt) kann stark angepasst werden, um einige coole Funktionen wie das Hinzufügen eines „Deskto...
So bereinigen Sie Viren durch Befehlszeilenscan in Ubuntu und Linux Mint
Obwohl Linux weniger anfällig für Virusinfektionen ist, ist es im Allgemeinen eine gute Idee, den gesamten PC regelmäßig zu scannen, insbesondere bei ...