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.
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"><<<XML
<books>
<book id="1">
<title>PHPErste Schritte</title>
<author>Zhang San</author>
</book>
<book id="2">
<title>XML</span>Analysieren Sie den tatsächlichen Kampf</title>
<author>Li Si</author>
</book>
<book id=</span><span><span class="hljs-string">"3"</span></span><span>>
<title>Eingehendes VerständnisPHP</title>
<author>Li Si</author>
</book>
</books>
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>-></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>->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>
// Buch : Wählen Sie alle Buchknoten aus
[Autor = 'li si'] : Wählen Sie den Buchknoten mit dem Autorknotenwert "li si si" den Buchknoten aus.
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>-></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>
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>-></span><span><span class="hljs-title function_ invoke__">xpath</span></span><span>(</span><span><span class="hljs-string">"//book[@id > 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>->title . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
</span></span>
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.