0

YouTube フィード (例: http://gdata.youtube.com/feeds/api/users/USERNAME/uploads )から XML 要素 (エントリの ID) を受け取る方法を探しています。

フィードは次のようになります。

<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>
  ...

エントリの最初のタグを取得したい (tag:youtube.com, 2008 ...)。

数時間グーグルで調べ、GDataXML wiki を調べた後、XPath も GData も適切な要素を提供できなかったため、私にはわかりません。私の最初の推測では、feed タグと entry タグの属性を無視することはできません。

XPath を使用したソリューションは素晴らしいものですが、Objective-C でのソリューションも同様に歓迎されます。

4

1 に答える 1

1

デフォルトの名前空間が原因で、XPath を機能させようとして問題が発生している可能性があります。

の最初のタグだけが必要な場合はentry、これを使用できます。

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

特に最初のidものが必要な場合は、これを使用できます。

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

また、XPath 2.0 を使用できる場合は、述語を完全にスキップして、名前空間プレフィックスに * を使用できます。

/*/*:entry/*:id[1]
于 2012-05-19T17:56:10.183 に答える