我有一个问题,答案肯定很简单,但它只是缺乏我的理解。
我有一个带有以下外观的xml文件(简短示例)
<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>
我的问题是,我想从ID为1234的一个项目中读取所有属性及其属性及其值(如果存在)在数组中。
我知道如何使用xpath访问某个Item。 (感谢这个精彩的stackoverflow社区:))
但是如何才能将children()函数仅用于某个项?
喜欢这个
foreach ($item[id="1234"]->children() as $property) {
非常感谢你!
答案 0 :(得分:4)
我希望这可以帮到你。
<强>代码强>
$xml = new SimpleXMLElement('<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>');
foreach ($xml->xpath('//item[@id="1234"]') as $item)
{
foreach ($item->children() as $child) {
echo $child['name'] ."\n";
}
}
<强>输出强>
country_id rc_maintenance_other claim_right_shareholder charges_other other_expenses_heating unpaid_bills_amount iv_person_phone
示例:http://sandbox.onlinephpfunctions.com/code/4e0ddba2ed273ab4a20dc9379ea9ed0d669a4c0d
答案 1 :(得分:0)
但是如何才能将children()函数仅用于某个项?
<{3}}方法始终用于Simplexml中的某个元素。所以你可以通过使用它来做到这一点。
$element->children();
手册以这种方式硬币:
查找给定节点的子节点