我想通过编写java代码逐页读取XML转储, 但我有这个Scala代码,我不明白它重写它 那么类似的java代码是什么。我知道它可以在JVM上正常运行,但我想要一些我理解的东西。
import edu.umd.cloud9.collection.wikipedia.language._
import edu.umd.cloud9.collection.wikipedia._
def wikiXmlToPlainText(xml: String): Option[(String, String)] = {
val page = new EnglishWikipediaPage()
WikipediaPage.readPage(page, xml)
if (page.isEmpty) None
else Some((page.getTitle, page.getContent))
}
val plainText = rawXmls.flatMap(wikiXmlToPlainText)
答案 0 :(得分:1)
我不知道“rawXmls”的类型是什么,我正在猜测某种字符串集合。以下应该是wikiXmlToPlainTextUtil
方法(或多或少)的转换,它返回一个java可选的字符串列表而不是元组。我将把这个应用到你的流中,this answer可能对此有所帮助。
import edu.umd.cloud9.collection.wikipedia.language.*
import edu.umd.cloud9.collection.wikipedia.*
class wikiXmlToPlainTextUtil {
Optional<List<String>> wikiXmlToPlainText(String xml) {
EnglishWikipediaPage page = new EnglishWikipediaPage()
WikipediaPage.readPage(page, xml)
if (page.isEmpty) {
return Optional.empty();
} else {
List<String> result = new ArrayList<>();
result.add(page.getTitle);
result.add(page.getContent);
return Optional.of(result);
}
}
}