Java 测试Wikixmlj时出错
我想从wikipedia页面提取数据,所以我使用Wikixmlj API访问wikipedia转储。我的测试类的代码:Java 测试Wikixmlj时出错,java,Java,我想从wikipedia页面提取数据,所以我使用Wikixmlj API访问wikipedia转储。我的测试类的代码: package wikiXmlj; import edu.jhu.nlp.wikipedia.*; public class test { public static void main(String args[]){ WikiXMLParser wxsp = WikiXMLParserFactory.getSAXParser("D:\\simplewiki-201405
package wikiXmlj;
import edu.jhu.nlp.wikipedia.*;
public class test {
public static void main(String args[]){
WikiXMLParser wxsp = WikiXMLParserFactory.getSAXParser("D:\\simplewiki-20140501-pages-articles.xml.bz2");
try {
wxsp.parse();
WikiPageIterator it = wxsp.getIterator();
while(it.hasMorePages()) {
WikiPage page = it.nextPage();
System.out.println(page.getTitle());
} }catch(Exception e) {
e.printStackTrace();
}}}
我收到ttheis错误:
java.lang.UnsupportedOperationException
at edu.jhu.nlp.wikipedia.WikiXMLSAXParser.getIterator(WikiXMLSAXParser.java:70)
at wikiXmlj.test.main(test.java:18)
请帮助我。使用此代码
public void wikiDumpReader(String dumpfile) {
WikiXMLParser wxsp = WikiXMLParserFactory.getSAXParser(dumpfile);
System.out.println("Going to process dump file");
try {
wxsp.setPageCallback(new PageCallbackHandler() {
@Override
public void process(WikiPage page) {
System.out.println(page.getTitle());
}
});
wxsp.parse();
} catch (Exception e) {
System.err.println("Error :" + e);
}
}
这对我很有用。Ref您将迭代器与SAXParser一起使用 但是迭代器只与DOMParser一起工作 开关
WikiXMLParser wxsp=WikiXMLParserFactory.getSAXParser(“D:\\simplewiki-20140501-pages-articles.xml.bz2”)代码>
到
WikiXMLParser wxsp=WikiXMLParserFactory.getDOMParser(“D:\\simplewiki-20140501-pages-articles.xml.bz2”)代码>
它应该会起作用