1

そのため、YouTube ユーザーのフィードを解析するための小さなコードを作成しました。

問題は、呼び出すとgetNodeValue()null が返されることです。どうしてこれなの?アイデアや代替手段があれば、感謝します。

ここに私が現在どのように物事を行っているかのスニペットがあります:

try {

    Document d = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("https://gdata.youtube.com/feeds/api/users/estudiosabiertostv/uploads");

    NodeList entries = d.getElementsByTagName("entry");

    for(int i = 0; i < entries.getLength(); i++) {

        NodeList children = entries.item(i).getChildNodes();
        YoutubeVideo video = new YoutubeVideo();

        for(int j = 0; j < children.getLength(); j++) {

            Node child = children.item(j);

            if(child.getNodeName().equals("title")) {

                video.title = child.getNodeValue();
                break;
            }
        }
        videos.add(video);
    }
}
catch (Exception e) {

    e.printStackTrace();
}

XML を取得している URL は次のとおりです。

https://gdata.youtube.com/feeds/api/users/estudiosabiertostv/uploads

これは、タイトルを取得しようとしているエントリのスニペットです。

<entry>
    <id>http://gdata.youtube.com/feeds/api/videos/oDbOmTY3gDw</id>
    <published>2012-12-17T08:14:12.000Z</published>
    <category scheme="http://schemas.google.com/g/2005#kind" term="http://gdata.youtube.com/schemas/2007#video"/>
    <title type="text">SEAS - Grupo San Valero - Crea tu propia Navidad (2012)</title>

    <content type="text">Felicitación de Navidad de SEAS, Estudios Abiertos del Grupo San Valero</content>
    <link rel="alternate" type="text/html" href="http://www.youtube.com/watch?v=oDbOmTY3gDw&feature=youtube_gdata"/>
    <author>
        <name>estudiosabiertostv</name>
        <uri>http://gdata.youtube.com/feeds/api/users/estudiosabiertostv</uri>
    </author>
</entry>
4

1 に答える 1

1

タイトル ノードには子 (テキスト ノード) が必要であり、そのノードには実際のテキストが含まれている必要があります。

また、断片化に注意してください。ここで説明されているように、いくつかの隣接するテキスト ノードがある場合があります: http://www.drillio.com/en/software-development/java/fragmented-xml-text-nodes/

于 2012-12-28T07:28:11.877 に答える