2011-04-13 6 views
0

Songkick API를 사용 중이며 URL에서 XML 데이터를 구문 분석하여 중첩 된 URL을 가져 와서 리디렉션해야합니다. XML 구문을 제대로 파싱 할 수없는 것 같습니다. 여기에 내가 가진 것이있다.XML을 올바르게 구문 분석합니다.

Parse error: syntax error, unexpected '[', expecting T_STRING or T_VARIABLE or '{' or '$' on line 10

나는 지금 매우 혼란 스러워요 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. ?> 

이 오류를 얻고있다. 이것에 대한 도움은 크게 감사 할 것입니다.

4-13-11 업데이트 지금이 내 코드를 변경 :

<?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"; 
?> 

나는 403 금지 오류가 발생하고 때 $ doc->로드 ("URL"); 해고입니다 ...

무엇을 제공합니까?

+2

구문을 확인하십시오. 오류 메시지는 10 행에 구문 오류가 있음을 알려줍니다 :'print $ item -> []'. 이 상황에서 XML을 파싱하는 것과 아무런 관련이 없습니다. – Eliasdx

+0

이 질문 시점에 API에 JSON 지원이 없어도 JSON이 지원되며 XML보다 훨씬 선호됩니다. – Kevin

답변

0

알아 냈습니다.

$ request_url = urlencode ("http://api.songkick.com/api/3.0/search/artists.xml?query=$songkick_artist & apikey = songkickapikey"); $ xml = simplexml_load_file ($ request_url) 또는 죽을 때 ("피드가로드되지 않음"); $ artist = $ xml-> results -> artist [ "uri"];

URL이 올바르게 구문 분석하지 않기 때문에 urlencode가 기본 키입니다 ...

1

문제는 간단한 구문 분석 오류입니다. 당신은 부족합니다; 그걸 해결할 수 있을까요?

0

10 번 줄에서 뭘 하시겠습니까? syntag가 잘못되었습니다 : print $item->[] $ item은 $ item-> doSomeMethod()를 사용하여 doSomeMethod를 사용할 수 있지만 $ item -> []을 쓸 수 없습니다.

+0

안녕하세요, 웨슬리, 저는 그것을 시도했지만 문제가 아닙니다. MRu가 여기에있는 것 같지만 필요한 결과를 얻으려면 어떻게해야합니까? – GrayFox5

관련 문제