这是我正在解析的XML: https://seekingalpha.com/api/sa/combined/AAPL.xml
当我使用simplexml_load_file($ url)抓取并解析XML然后对其执行var_dump时,它显示每个“item”的唯一子节点是“title”,“link”,“guid”和“ pubdate的“。
我正在尝试访问节点“sa:author_name”。为什么它不是“项目”的孩子?也许我误解了XML文件的结构。帮助我,我的孩子们失踪了哈哈尔
答案 0 :(得分:0)
要获取sa:author_name
中的数据,您必须使用命名空间https://seekingalpha.com/api/1.0
。
例如,您可以使用foreach
并使用命名空间循环children。
$url = "https://seekingalpha.com/api/sa/combined/AAPL.xml";
$xml = simplexml_load_file($url);
foreach ($xml->channel->item as $item) {
foreach ($item->children("https://seekingalpha.com/api/1.0") as $child) {
if ($child->getName() === "author_name") {
echo $child . "<br>";
}
}
}
另一种方法是使用xpath表达式:
$authorNames = $xml->xpath('/rss/channel/item/sa:author_name');
foreach ($authorNames as $authorName) {
echo $authorName . "<br>";
}
这将导致:
Yoel Minkoff
DoctoRx
SA Transcripts
Bill Maurer
etc..