我试图从php中读取一些特定的子节点,我想显示但是我无法显示节点值。以下是我试图阅读的xml格式
<nns2:ApiDirectory xmlns:ns2="https://sourceurl.com/api>
<api:groups>
<entry>
<key>Affiliate</key>
<value>
<apilisting>
<entry>
<key>value</key>
<value>
<get>https://url1.com</get>
</value>
</entry>
</apilisting>
</value>
</entry>
</api>
</ns2>
我想从上面的xml格式中读取get节点。在xml文件中有大约10-12个像上面那样的片段。所以我想从所有片段中读取get节点值并将它们放在一个数组中。
我在php中使用simplexmlelement来读取xml 请指导如何获取所需的节点值 假设我将整个xml放在名为data的变量中,我在下面使用过。
$xml = new SimpleXMLElement($data);
echo $xml->ns2->api:groups->entry->value->apilisting-entry->value->{get};
答案 0 :(得分:1)
您的代码中存在拼写错误。
echo $xml->ns2->api:groups->entry->value->apilisting-entry->value->{get};
应该是:
echo $xml->ns2->api:groups->entry->value->apilisting->entry->value->{get};
请注意->
apilisting
请注意:xml示例中的:groups命名空间。
答案 1 :(得分:0)
为了让PHP明白你必须在对象上强制进行类型转换,如下所示:
$array = (array) $xml->ns2->api:groups->entry->value->apilisting->entry->value->get;
print_r($array);
输出:
Array ([0] => 'https://url1.com')