我有一个XML格式的回复,我需要在PHP中循环浏览内容。由于我是XML新手,我尝试了一下,但没有找到任何解决方案。有人能帮忙吗?
<?php
$xmlstring=<<<XML
<?xml version="1.0" encoding="utf-8"?>
<v-ov version="1.0">
<object vk="1" model="top">
<field type="BigIntegerField" name="bolpo">678</field>
<field name="pdop">
<object wk="1" model="stage">
<field type="DateTimeField" name="updated_on">10 Dec, 2020, 10:00 </field>
</object>
<object wk="2" model="stage">
<field type="DateTimeField" name="updated_on">11 Dec, 2020, 10:00 </field>
</object>
</field>
</object>
</v-ov>
XML;
$xpath = new SimpleXMLElement($xmlstring);
$node = $xpath->xpath('/object[@model="top"]/field[@name="pdop"]/object');
print_r($node);
2条答案
按热度按时间nbysray51#
您的xpath在选择对象节点时稍有偏差,在XML根节点处有一个
<v-ov>
节点,但您的xpath以单斜杠开头,因此xpath将<object>
指定为根节点。如果你改变你的xpath在开始处包含一个双斜线,那么xpath引擎将在任何深度寻找节点,即:
//object[@model="top"]/field[@name="pdop"]/object
选中节点后,可以使用
foreach
迭代这些节点,以提取所需的任何值:Example here: https://3v4l.org/MUL4o#v8.2.1
vu8f3i0k2#
你可能需要一个嵌套循环来访问你的XML内容,这是一个简单的例子,我可以给予