0

我正在尝试使用以下 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;
}
}

除非类别节点具有域属性,否则它工作正常。当它发生时,它似乎完全忽略了它的类别。

任何想法为什么?

4

1 回答 1

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/

于 2013-05-15T23:26:40.183 回答