Zugriff auf alle Kinder von einem bestimmten Knoten mit simplexml und php
Ich habe eine Frage, und die Antwort ist sicher einfach, aber es fehlt einfach an Verständnis von meiner Seite.
Ich habe eine xml-Datei mit folgendem Aussehen (kurzes Beispiel)
<item id="1234">
<property name="country_id">
<value>4402</value>
</property>
<property name="rc_maintenance_other">
</property>
<property name="claim_right_shareholder">
</property>
<property name="charges_other">
</property>
<property name="other_expenses_heating">
</property>
<property name="unpaid_bills_amount">
</property>
<property name="iv_person_phone">
<value>03-6756711</value>
</property>
</item>
<item id="9876">
...
</item>
Mein problem ist, das ich Lesen will alle Werte aus der ein Element mit der id 1234 mit Ihrer Eigenschaft und Ihrem Wert, falls vorhanden, in ein array.
Ich weiß, wie Sie auf das bestimmte Element mit xpath. (Dank dieser wunderbaren stackoverflow community 🙂 )
Aber wie kann ich die Kinder () - Funktion nur bis zu einem gewissen Punkt?
Wie diese
foreach ($item[id="1234"]->children() as $property) {
Vielen, vielen Dank!
Zuerst schreiben Sie den code, wie auf das Element - element, das Sie möchten, dass die Kinder aus. Speichern Sie in einer Variablen. Rufen Sie die Kinder () - Methode auf. Als Sie schrieb, Sie wissen, wie der erste Teil funktioniert, und Sie wissen über die Kinder () - Methode, so ist es im Grunde nur um diese zwei zusammen.
möglich, Duplikat der SimpleXML get-element-Inhalte auf Basis von Attribut-Wert
Aber ich könnte es nicht verstehen, Ihre Frage vollständig, vielleicht etwas Licht. Meinst du, um alle Nachkommen?
mögliche Duplikate von die Umsetzung der Bedingung in XPath und XQuery
möglich, Duplikat der SimpleXML get-element-Inhalte auf Basis von Attribut-Wert
Aber ich könnte es nicht verstehen, Ihre Frage vollständig, vielleicht etwas Licht. Meinst du, um alle Nachkommen?
mögliche Duplikate von die Umsetzung der Bedingung in XPath und XQuery
InformationsquelleAutor Owl | 2013-04-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hoffe das kann dir helfen.
Code
Ausgabe
Beispiel: http://sandbox.onlinephpfunctions.com/code/4e0ddba2ed273ab4a20dc9379ea9ed0d669a4c0d
foreach ($xml->xpath($path) as $item)
Und falls jemand anderes es brauchen, hier, wie Sie auf die Werte der Eigenschaft Knoten:
$path = '//item[@id="'.$id.'"]'; foreach ($xml->xpath($path) as $item) { foreach ($item->children() as $child) { foreach ($child->children() as $value) { echo $child['name'] ." = ".$value."<br />"; } } }
InformationsquelleAutor S.Visser
Den
SimpleXMLElement::children()
Docs Methode verwendet wird immer zu einem bestimmten element in Simplexml. So können Sie tun, indem Sie einfach mit.Handbuch Münzen es auf diese Weise:
InformationsquelleAutor hakre