在php中读取xml节点

时间:2014-09-10 08:15:42

标签: php xml

我试图从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};

2 个答案:

答案 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')