我在尝试用simpleXML来解析atom1.0格式里的数据,结果遇到了读不出数据的问题。
下面是atom的源代码:
<atom:id gr:original-id=”http://huijia.org/?p=30“>tag:google.com,2005:reader/item/524195038eba942c</atom:id>
上面的代码里有两个名称空间(namespace),一个是gr
‘gr’ => ‘http://www.google.com/schemas/reader/atom/’,
另一个是atom
‘atom’ => ‘http://www.w3.org/2005/Atom’
我想把original-id的值读出来,也就是要读到 http://huijia.org/?p=30 的值,这个值实际上是blog的永久链接,但我尝试多个办法都失败了,不过我能用print_r()打印出来
echo ‘<pre>’;
print_r($details->id->children(‘http://www.google.com/schemas/reader/atom/’));
echo ‘</pre>’;
显示结果如下:
SimpleXMLElement Object
(
[@attributes] => Array
(
[original-id] => http://huijia.org/?p=30
)
)
不过,同样的方法却在另一个
<atom:link href=”http://huijia.org“ rel=”alternate“ type=”text/html“/>
命名空间的属性值能读出来。
echo $entry->children(‘http://www.w3.org/2005/Atom’)->link->attributes()->href;
打印
print_r( $details->link->attributes());
的结果也跟前面的差不多啊,
SimpleXMLElement Object
(
[@attributes] => Array
(
[href] => http://huijia.org/2009/01/20/hanleiquanmaihuochepiaodepimin/
[rel] => alternate
[type] => text/html
)
)
怎么用一样的方法在这里能读出数值呢,在前面那个情况下却读不出来呢?这是怎么回事呢?求高人指点。
仍然搜索不到结果,我把这个问题发到 http://stackoverflow.com/questions/19372302/cant-get-namespace-original-id-value-by-simplexml