0
我使用sax解析器解析xml文件。 xml文件包含鏈接標記中具有下一個屬性的另一個xml文件的鏈接。我必須繼續閱讀,直到沒有下一個屬性的最後一個xml文件。 以下是XML文件:
閱讀xml文件和xml文件的鏈接並保持解析
<link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/EokUNzGJBI8/comments" />
<link rel="http://schemas.google.com/g/2005#batch" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/EokUNzGJBI8/comments/batch" />
<link rel="self" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/EokUNzGJBI8/comments?start-index=1&max-results=25" />
<link rel="next" type="application/atom+xml" href="http://gdata.youtube.com/feeds/api/videos/EokUNzGJBI8/comments?start-index=26&max-results=25" />
我曾嘗試以下:
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler() {
boolean content=false;
int i=0;
public void startElement(String uri, String localName,String qName,
Attributes attributes) throws SAXException {
if (qName.equalsIgnoreCase("Content")) {
content = true;
i+=1;
}
if(qName.equalsIgnoreCase("Link") && attributes.getValue("rel").equalsIgnoreCase("next")){
l=attributes.getValue("href");
u=true;
}
}
要遞歸讀取URL中l
上述回到我做的follwoing:
saxParser2.parse(new InputSource(ur.openStream()), handler);//to read original url
while(l!=null)
{
urs=new URL(l); //successive urls
saxParser.parse(new InputSource(urs.openStream()), handler);
}
的上面繼續打印最後一個響應,然後在最後一個xml中找不到下一個響應。
這意味着我可以循環這個saxParser2同時呼籲復位? – MaxSteel 2013-03-08 08:04:24
@orabog基本上我想要做的就是讀取鏈接標籤中的rel =「next」的href,並解析它,直到最後一個沒有rel =「next」attrib的xml文件。 – MaxSteel 2013-03-08 08:07:36