我想知道如何在XML中解析看起来具有的值:在他们的名字中。我一直在用:
$response = file_get_contents($url);
$data = simplexml_load_string($response);
然后做一个:
foreach($data->item as $key => $current){
但是,我给出的最新Feed之一在Feed名称中有冒号,如下例所示:
<item>
<title>foo</title>
<description>foo</description>
<ccc:fid>10</ccc:fid>
<ccc:bid>6</ccc:bid>
</item>
当我尝试创建一个$ current-&gt; ccc:bid php并不高兴(理所当然)。有没有办法解决这个问题?
答案 0 :(得分:3)
冒号的元素使用namespace prefixes,它是完全有效的XML。在一起使用多个模式时,名称空间有助于区分具有相同名称的元素。 PHP中的SimpleXMLElement对象处理它的方式,你基本上可以忽略冒号之前的部分:
$current->fid;
如果您想查找元素名称的命名空间部分,可以执行以下操作:
$current->fid->getNamespaces();
答案 1 :(得分:2)
ccc的用法:fid是命名空间的扩展,需要在xml中声明,以便能够在像simplexml这样的库中使用它。
以下是名称空间中使用说明的一些示例:
希望有所帮助,尽管它有点复杂。
答案 2 :(得分:2)
“ccc”是一个命名空间 - 你应该能够做到
$current->fid