我正在尝试使用以下PHP解析RSS文件:
$doc = new DOMDocument();
$doc->load($address);
$feedArr = array();
foreach ($doc->getElementsByTagName('item') as $node) {
$itemRSS = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue
);
foreach($node->getElementsByTagName('category') as $catNode) {
$itemRSS['category'][] = $catNode->nodeValue;
}
}
除非类别节点具有域属性,否则它可以正常工作。当它发生时,似乎完全忽略了它的类别。
任何想法为什么?
答案 0 :(得分:0)
您可以像这样访问XML属性:
'whatever' => $node->getElementsByTagName('node')->getAttribute('category')
所以我认为你应该只修改你的循环:
foreach($node->getElementsByTagName('node')->getAttribute('category') as $catNode) {
}
虽然我可能对语法略有不同,因为我还没有用PHP编写一段时间,虽然getAttribute肯定是你想要的。
实际上,这里有一个很好的教程,在PHP中使用Simplexml函数:http://webtutsdepot.com/2009/07/26/how-to-parse-xml-with-php-part2-xml-with-atrributes/