Aktueller Standort: Startseite> Neueste Artikel> Wie kann ich XML mit Simplexml mit PHP XPath -Funktion analysieren? Detaillierte Verwendung Beispiele zur Freigabe

Wie kann ich XML mit Simplexml mit PHP XPath -Funktion analysieren? Detaillierte Verwendung Beispiele zur Freigabe

gitbox 2025-08-25

2. Einführung in XPath

XPath ist eine Sprache, mit der Knoten in XML -Dokumenten lokalisiert werden. SimpXML wird mit der XPath () -Methode ausgestattet, mit der XPath -Ausdrücke zum Abfragen von Knoten verwenden können.


3. Beispiele für das Parsen von XML mit XPath

Angenommen, wir müssen alle Buchknoten aus dem folgenden XML holen, der Autor ist der Buchtitel von "Li Si".

 <span><span><span class="hljs-variable">$xmlString</span></span><span> = <span class="hljs-string">&lt;&lt;&lt;XML
&lt;books&gt;
    &lt;book id="1"&gt;
        &lt;title&gt;PHPErste Schritte&lt;/title&gt;
        &lt;author&gt;Zhang San&lt;/author&gt;
    &lt;/book&gt;
    &lt;book id="2"&gt;
        &lt;title&gt;XML</span>Analysieren Sie den tatsächlichen Kampf&lt;/title&gt;
        &lt;author&gt;Li Si&lt;/author&gt;
    &lt;/book&gt;
    &lt;book id=</span><span><span class="hljs-string">"3"</span></span><span>&gt;
        &lt;title&gt;Eingehendes VerständnisPHP&lt;/title&gt;
        &lt;author&gt;Li Si&lt;/author&gt;
    &lt;/book&gt;
&lt;/books&gt;
XML;

</span><span><span class="hljs-variable">$xml</span></span><span> = </span><span><span class="hljs-title function_ invoke__">simplexml_load_string</span></span><span>(</span><span><span class="hljs-variable">$xmlString</span></span><span>);

</span><span><span class="hljs-comment">// XPathAbfrageauthor为Li Si的bookKnoten</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$xml</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">xpath</span></span><span>(</span><span><span class="hljs-string">"//book[author='Li Si']"</span></span><span>);

</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$book</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Buchtitel:"</span></span><span> . </span><span><span class="hljs-variable">$book</span></span><span>-&gt;title . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
</span></span>

Auslaufergebnisse:

 <span><span>Buchtitel:</span><span><span class="hljs-type">XML</span></span><span>Analysieren Sie den tatsächlichen Kampf
Buchtitel:Eingehendes VerständnisPHP
</span></span>

4. XPath Expression Beschreibung

  • // Buch : Wählen Sie alle Buchknoten aus

  • [Autor = 'li si'] : Wählen Sie den Buchknoten mit dem Autorknotenwert "li si si" den Buchknoten aus.


V. Weitere praktische Beispiele

1. Holen Sie sich ein Knotenattribut

Holen Sie sich die ID -Attribute aller Bücher :

 <span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$xml</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">xpath</span></span><span>(</span><span><span class="hljs-string">"//book"</span></span><span>) </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$book</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"BuchID:"</span></span><span> . </span><span><span class="hljs-variable">$book</span></span><span>[</span><span><span class="hljs-string">'id'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
</span></span>

2. Komplexe Abfrage

Holen Sie sich Bücher mit ID von mehr als 1:

 <span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$xml</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">xpath</span></span><span>(</span><span><span class="hljs-string">"//book[@id &gt; 1]"</span></span><span>);
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$book</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$book</span></span><span>-&gt;title . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
</span></span>

6. Zusammenfassung

  • Laden Sie XML mit SimplexML_Load_string () oder simplexml_load_file () .

  • Verwenden Sie die XPath () -Methode, um Knoten flexibel mit XPath -Ausdrücken zu lokalisieren.

  • Auf Knoteneigenschaften können über Attribut -Arrays zugegriffen werden.

  • XPath -Ausdrücke sind leistungsstark und können mehrere Filter- und Pfadpositionen unterstützen.

Durch das Beherrschen der Kombination von Simplexml und XPath können PHP -Entwickler verschiedene XML -Daten effizient verarbeiten und die Programmflexibilität und die Wartbarkeit verbessern.