Verwendung von XPath in PHP

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

Syntax:

Die Syntax der Funktion XPath () ist unten angegeben.

Array XPath (String $ Path)

Diese Funktion hat ein Argument, das einen Pfadwert nimmt, und wenn der Pfad in einem Knoten des XML. Verschiedene Verwendungen dieser Funktion haben 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 auf dem Speicherort, an dem die PHP -Datei erstellt wird, um diese Datei zu analysieren.




MN-56345
Dell
15 Zoll Dell Monitor
700


HD-34278
Samsung
1 TB Samsung HDD
520


MS-67457
Logitech
Logitech Wireless Maus
100


MN-76453
HP
14 Zoll HP Monitor
750

Gebrauch von simplexml_load_file () Funktion:

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

Beispiel 1: Lesen Sie die jeweiligen XML-Knotenwerte

Das folgende Beispiel zeigt, wie Sie den Inhalt der bestimmten Knotenwerte aus dem XML -Dokument lesen, indem der Funktionspfad von XPath () definiert wird. Die Objektvariable, $ xml wird erstellt, um die spezifischen Knotenwerte der zu lesen Produkte.xml Datei. '/Produkte/Produkt/Marke' ' wird im XPath () verwendet, um alle Markenknotenwerte zu lesen. '/Produkte/Produkt' ' wird im XPath () verwendet, um alle untergeordneten Knotenwerte von zu lesen PRODUKT Knoten. für jede Schleife wird verwendet, um die Werte von zu drucken NAME Und PREIS Knoten.

// Objekt erstellen, um die XML -Datei zu lesen
$ xml = simplexml_load_file ('Produkte.xml ');
// Alle Markenknotenwerte durchsuchen
$ brand = $ xml-> xpath ('/produkt/produkt/marke');
// Drucken Sie die Array -Werte
Echo "

Die Liste der Markennamen lautet:

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

// Alle Produktknotenwerte durchsuchen
$ products = $ xml-> xpath ('/products/product');
Echo "

Die Liste des Produktnamens und des Produkts:

";
Echo "";
Echo "";
// Drucken Sie die Array -Werte
foreach ($ products as $ product)
Echo "";

Echo "
NamePreis
$ produkt-> name $$ Produkt-> Preis
";
?>

Ausgang:

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

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

Das folgende Beispiel zeigt, wie Sie die bestimmten Knotenwerte basierend auf der Bedingung unter Verwendung der XPath () -Funktion lesen können. Der Pfadwert, '/Produkte/Produkt [Preis> 600]' ', sucht die Werte aller untergeordneten Knoten von PRODUKT Knoten, bei dem der Wert von PREIS Der Knoten ist mehr als 600. für jede Schleife wird verwendet, um die Werte von zu drucken NAME Und PREIS Knoten.

// Objekt erstellen, um die XML -Datei zu lesen
$ xml = simplexml_load_file ('Produkte.xml ');
// Durchsuchen Sie die Produkte, bei denen der Preiswert mehr als 600 beträgt
$ products = $ xml-> xpath ('/products/produkt [Preis> 600]');
Echo "

Die Liste des Produktnamens und des Preises, bei dem der Preis mehr als 600 beträgt:

";
Echo "";
Echo "";
// Drucken Sie die Array -Werte
foreach ($ products as $ product)
Echo "";

Echo "
NamePreis
$ produkt-> name $$ Produkt-> Preis
";
?>

Ausgang:

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

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

Das folgende Beispiel zeigt, wie die bestimmten Knotenwerte basierend auf den Attributwerten des spezifischen Knotens des XML -Dokuments anhand der Funktion XPath () basieren. Der Pfadwert, '/Products/product [@category = ”monitor”]' sucht die Werte aller untergeordneten Knoten von das Produkt Knoten, wobei der Wert des Kategorie -Attributs ist Monitor. für jede Schleife wird verwendet, um die Werte von zu drucken MARKENNAME, Und PREIS Knoten.

// Objekt erstellen, um die XML -Datei zu lesen
$ xml = simplexml_load_file ('Produkte.xml ');
// Durchsuchen Sie die Produkte, bei denen der Attributwert der Çategorie "Monitor" ist
$ products = $ xml-> xpath ('/products/product [@category = "monitor"]');
Echo "

Die Liste der Produktmarke, Namen und Preis basierend auf der Kategorie (Monitor):

";
Echo "";
Echo "";
// Drucken Sie die Array -Werte
foreach ($ products as $ product)
Echo "";

Echo "
MarkeNamePreis
$ produkt-> Marke$ produkt-> name $$ Produkt-> Preis
";
?>

Ausgang:

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

Gebrauch von Simplexmlelement Klasse:

Die Verwendungen von XPath () -Funktion durch Erstellen des Simplexmlelement Class -Objekts haben in diesem Teil dieses Tutorials gezeigt.

Beispiel-4: Verwendung von XPath () durch Definieren von XML-Inhalten in einer Variablen

Das folgende Beispiel zeigt, wie die Knotenwerte des XML -Dokuments in einer Variablen anstelle der Datei deklariert werden. XML -Inhalt wird in der gespeichert $ xml_data Variable. "/Kunden/Kunde" wird als Argumentwert der Funktion von XPath () verwendet, um alle Werte der untergeordneten Knoten des Kunde Knoten. Als nächstes a für jede Schleife wird verwendet, um die Werte von zu drucken der Name Knoten. "/Kunden/Kunde [@departy = 'hr']" wird als Argumentwert einer anderen XPath () -Funktion verwendet, um alle Werte der untergeordneten Knoten des Kundenknotens zu lesen, wobei der Wert von Abteilung Attribut ist HR. Nächste, a für jeden Die Schleife wird verwendet, um die Werte der zu drucken Email Knoten.

$ xml_data = <<

Md. Mahbub
[email protected]


Farhana Zaman
[email protected]


Xml;
// Objekt definieren, um die XML -Daten zu lesen
$ xml = new Simplexmlelement ($ xml_data);
// Pfad definieren, um alle Kundendaten zu lesen
$ customer = $ xml-> xpath ("/customer/customer");
// Drucken Sie den Namen der Kunden
Echo "

Die Liste der Kundennamen:

";
foreach ($ customer als $ customer)
echo "$ customer-> name
";

// Pfad definieren, um alle Kundendaten der Personalabteilung zu lesen
$ customer = $ xml-> xpath ("/customer/customer [@department = 'hr']");
// Drucken Sie die E -Mail der Kunden
Echo "

Die E -Mail des Kunden der Personalabteilung:

";
foreach ($ customer als $ customer)
echo "$ customer-> mail
";

?>

Ausgang:

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

Abschluss:

Zwei verschiedene Arten zur Verwendung der Funktion XPath () zum Lesen der Knotenwerte des XML -Dokument.