一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - java解析sina視頻

java解析sina視頻

2019-10-30 16:58java教程網(wǎng) JAVA教程

本文介紹了一個(gè)java解析sina視頻地址的例子,從這個(gè)例子中可以學(xué)習(xí)到j(luò)ava使用sax解析xml的方法,大家可以參考修改成其它功能

用一個(gè)例子來說明,比如這個(gè)http://video.sina.com.cn/v/b/75314002-1648211320.html。
用火狐打開,開啟firebug,得到如下信息。

java解析sina視頻

其中在這個(gè)請(qǐng)求

http://v.iask.com/v_play.php?vid=75314002&uid=1648211320&pid=478&tid=&plid=4001&prid=ja_7_3485822616&referrer=&ran=0.2936802236363292&r=video.sina.com.cn

中得到的響應(yīng)有我們想要的xml信息,其中vid就是上面紅色部分,uid后面的都可以忽略,我們?cè)跒g覽器中直接輸入http://v.iask.com/v_play.php?vid=75314002還是可以得到相同的信息。自此解析的思路就變清晰了,在視頻鏈接中提取出vid,使用http://v.iask.com/v_play.php?vid=得到xml文件,解析xml文件就可以得到真實(shí)視頻地址了。

下面的是解析xml的代碼,使用sax解析xml。首先定義xml reader。

 

復(fù)制代碼代碼如下:

package hdu.fang.parser;

import hdu.fang.model.Video;

import java.util.ArrayList;
import java.util.List;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class XMLSaxReader extends DefaultHandler {
    private List<Video> videos = null;
    private Video video = null;
    private Long timeLength = null;
    private String tag = null;

    @Override
    public void startDocument() throws SAXException {
        videos = new ArrayList<Video>();
    }

    @Override
    public void startElement(String uri, String localName, String qName,
            Attributes attributes) throws SAXException {
        if ("durl".equals(qName)) {
            video = new Video();
        }

        tag = qName;
    }

    @Override
    public void endElement(String uri, String localName, String qName)
            throws SAXException {
        if ("durl".equals(qName)) {
            videos.add(video);
            video = null;
        }
        tag = null;
    }

    @Override
    public void characters(char[] ch, int start, int length)
            throws SAXException {
        if (tag != null) {
            String data = new String(ch, start, length);
            if ("timelength".equals(tag)) {
                timeLength = Long.valueOf(data);
            } else if ("order".equals(tag)) {
                video.setOrder(Integer.valueOf(data));
            } else if ("url".equals(tag)) {
                video.setUrl(data);
            } else if ("length".equals(tag)) {
                video.setLength(Integer.valueOf(data));
            }
        }
    }

     
    public List<Video> getVideos() {
        return videos;
    }

    public long getLength() {
        return timeLength;
    }
}

 

Video類是我自己定義的一個(gè)數(shù)據(jù)model。在主函數(shù)里我們只要調(diào)用sax工廠實(shí)例化解析器就行了。

 

復(fù)制代碼代碼如下:

SAXParserFactory sf = SAXParserFactory.newInstance();
SAXParser sp = sf.newSAXParser();
XMLSaxReader reader = new XMLSaxReader();
InputStream in_withcode = new ByteArrayInputStream(
    xml.getBytes("UTF-8"));//xml就是剛得到的xml文件,類型String
sp.parse(in_withcode, reader);
videos=reader.getVideos();//得到Video List
timeLength=reader.getLength();//得到視頻長(zhǎng)度
System.out.println(videos);

 

在xml文件里還有很多其他信息,都可以解析出來,看自己需要了。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲国产精品嫩草影院永久 | acg火影忍者熟密姬纲手h | 亚洲第一免费播放区 | free性俄罗斯护士 | 国产99久久久国产精品成人 | 欧美日韩中文字幕在线视频 | 三级理论在线观看 | yjsp妖精视频在线观看免费 | 国外欧美一区另类中文字幕 | 亚洲天堂在线视频观看 | 国产成人高清亚洲一区91 | 免费jizz在在线播放国产 | 国产草草视频 | 国产在线精品香蕉综合网一区 | 欧美日韩中文字幕在线视频 | 日出水了特别黄的视频 | 国产精品天天看天天爽 | 婷婷丁香色综合狠狠色 | 久久久久久久久人体 | 99看视频 | 国产一区二区免费福利片 | 国产精品原创巨作无遮挡 | 精品久久久久久久久免费影院 | 波多野结衣xxxx性精品 | 国产成人综合亚洲一区 | 精品在线观看一区 | 1024视频色版在线网站 | chinese军人@gay | 四虎影院新网址 | 国产高清在线视频一区二区三区 | 九九精品成人免费国产片 | 97se亚洲国产综合自在线观看 | 成人在线播放视频 | ass天天裸妇pics | 国产精品一二区 | 国产高清一区二区三区免费视频 | 扒开双腿疯狂进出爽爽动态图 | 亚洲精品一区在线观看 | 亚洲男人网 | 日本视频高清免费观看xxx | 久久不射电影网 |