2

以下のコードを使用して、asp.net アプリケーションに埋め込まれた YouTube ビデオのタイトルと説明を取得しています。タイトルは表示されますが、説明は表示されません。

私はこれを行うためにAtomfeedを使用しています...

問題は、すべてのビデオの説明を「Google.GData.Client.AtomTextConstruct」として取得することです。

Private Function GetTitle(ByVal myFeed As AtomFeed) As String
    Dim strTitle As String = ""
    For Each entry As AtomEntry In myFeed.Entries
        strTitle = entry.Title.Text
    Next
    Return strTitle
End Function

Private Function GetDesc(ByVal myFeed As AtomFeed) As String
    Dim strDesc As String = ""
    For Each entry As AtomEntry In myFeed.Entries
        strDesc = entry.Summary.ToString()
    Next
    Return strDesc
End Function
4

2 に答える 2

1

アトム フィードからの XML が解析されるとき、その説明は処理されないと思います。これを見てください: http://code.google.com/p/google-gdata/wiki/UnderstandingTheUnknown

しかし、理解されていないものはどうなりますか?これらは、AtomFeed、AtomEntry、EventEntry など、AtomBase から継承されたすべてのクラスのメンバーである ExtensionElements コレクションの要素になります。

したがって、次のように拡張要素から説明を引き出すことができます。

Dim query As New FeedQuery()
Dim service As New Service()
query.Uri = New Uri("https://gdata.youtube.com/feeds/api/standardfeeds/top_rated")
Dim myFeed As AtomFeed = service.Query(query)
For Each entry In myFeed.Entries
    For Each obj As Object In entry.ExtensionElements
        If TypeOf obj Is XmlExtension Then
            Dim xel As XElement = XElement.Parse(TryCast(obj, XmlExtension).Node.OuterXml)
            If xel.Name = "{http://search.yahoo.com/mrss/}group" Then
                Dim descNode = xel.Descendants("{http://search.yahoo.com/mrss/}description").FirstOrDefault()
                If descNode IsNot Nothing Then
                    Console.WriteLine(descNode.Value)
                End If
                Exit For
            End If
        End If
    Next
Next

また、「Google.GData.Client.AtomTextConstruct」を取得する理由は、Summary が Google.GData.Client.AtomTextConstruct 型のオブジェクトであるためです。つまり、entry.Summary.ToString() を実行すると、デフォルトの ToString( ) 行動。通常は Summary.Text を実行しますが、上で述べたように、ライブラリによって適切に処理されないため、これはもちろん空白です。

于 2012-09-06T06:27:49.450 に答える
0

YouTube の場合、Google.GData.YouTube.

このようなものは、ビデオから多くの情報を返します。

Dim yv As Google.YouTube.Video

url = New Uri("http://gdata.youtube.com/feeds/api/videos/" & video.Custom)

r = New YouTubeRequest(New YouTubeRequestSettings("??", "??"))
yv = r.Retrieve(Of Video)(url)

次に、次の方法で説明を取得できます: yv.Description

于 2012-09-07T23:24:42.780 に答える