2012-05-19 2 views
0

YouTube 피드에서 XML 요소 (항목의 ID)를 수신 할 방법을 찾고 있습니다 (예 : http://gdata.youtube.com/feeds/api/users/USERNAME/uploads).속성이 부적절한 경우 XPath를 통해 XML 요소 가져 오기

피드는 다음과 같다 : (: youtube.com 2008 ... 태그)

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:gd="http://schemas.google.com/g/2005" xmlns:yt="http://gdata.youtube.com/schemas/2007" gd:etag="W/&quot;DUcFQncyfCp7I2A9WhVUFE4.&quot;"> 
<id>tag:youtube.com,2008:user:USERNAME:uploads</id> 
<updated>2012-05-19T14:16:53.994Z</updated> 
    ... 
    <entry gd:etag="W/&quot;DE8NSX47eCp7I2A9WhVUFE4.&quot;"> 
     <id>tag:youtube.com,2008:video:MfPpj7f6Jj0</id> 
     <published>2012-05-18T13:30:38.000Z</published> 
    ... 

내가 항목의 첫 번째 태그를 싶어.

몇 시간 동안 인터넷 검색을하고 GDataXML 위키를 살펴본 결과, XPath 나 GData 모두 올바른 요소를 제공 할 수 없었기 때문에 나는 우둔합니다. 첫 번째 추측은 피드 및 입력 태그의 속성을 무시할 수 없다는 것입니다.

XPath를 사용하는 솔루션은 훌륭하지만 Objective-C의 솔루션은 똑같이 환영합니다.

+1

'entry'가 하나뿐입니까? 아니면'입국 '에 신경 쓰겠 니? 모든'entry's의'id'를 원하십니까? 당신은 무엇을 시도했고 어떻게 실패 했습니까? –

답변

1

기본 네임 스페이스로 인해 XPath가 작동하도록하는 데 문제가있을 수 있습니다. 특별히 첫 id을 원하는 경우에 당신이 사용할 수

/*/*[name()='entry']/*[1] 

: 당신이 할 수있는 경우에도

/*/*[name()='entry']/*[name()='id'][1] 

을 그냥 entry에서 처음으로 태그를 원하는 경우

, 당신은이를 사용할 수 있습니다 XPath 2.0을 사용하면 전제 조건을 완전히 건너 뛸 수 있고 * 네임 스페이스 접두어로 *를 사용할 수 있습니다.

/*/*:entry/*:id[1] 
관련 문제