【发布时间】:2011-04-13 21:56:58
【问题描述】:
我正在使用 Songkick API,需要从 URL 解析 XML 数据以获取嵌套 url 并重定向到它。我似乎无法正确解析 XML。这就是我现在所拥有的。
1. <?php
2. $songkick_artist = $_GET['id'];
3.
4. $xmlDoc = new DOMDocument();
5. $xmlDoc->load("http://api.songkick.com/api/3.0/search/artists.xml?query=$songkick_artist&apikey=songkickapikey");
6.
7. $x = $xmlDoc->documentElement;
8. foreach ($x->childNodes AS $item)
9. {
10. print $item->[]
11. print $item->nodeName . " = " . $item->nodeValue . "<br />";
12. }
13. ?>
我收到此错误:
解析错误:语法错误,意外的“[”,应为 T_STRING 或 T_VARIABLE 或 '{' 或 '$' 在第 10 行
解析 XML 信息的方法太多了,我现在很困惑。对此的任何帮助将不胜感激。
2011 年 4 月 13 日更新
我现在将代码更改为:
<?php
$doc = new DomDocument;
// We must validate the document before referring to the id
$doc->validateOnParse = true;
$doc->Load("http://api.songkick.com/api/3.0/search/artists.xml?query=$songkick_artist&apikey=songkickapikey");
echo "The element whose id is myelement is: " .
$doc->getElementById('myelement')->tagName . "\n";
?>
当 $doc->Load("URL"); 时我收到 403 禁止错误被解雇了……
什么给了?
【问题讨论】:
-
检查你的语法。错误消息告诉您在第 10 行有语法错误:
print $item->[]。这与在这种情况下解析 XML 无关。 -
在提出这个问题时,我不确定 API 是否缺少 JSON 支持,但现在支持 JSON,并且比 XML 更受欢迎。