我想从维基百科页面提取数据,因此我使用 Wikixmlj API 来访问维基百科转储。我的测试类的代码:
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();
}}}
我收到错误:
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 https://code.google.com/p/wikixmlj/
关于java - 测试 Wikixmlj 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29096975/