Если вам нужен простой текст, используйте библиотеку WikiClean https://github.com/lintool/wikiclean.
У меня была такая же проблема, и похоже, что это было единственное эффективное решение, которое работало для меня в Java.
Существует два варианта использования:
1) Если у вас есть текст не в формате XML, вы должны добавить теги xml, необходимые для этой обработки. Предположим, что вы обрабатываете файл XML ранее, и теперь у вас есть содержимое без структуры XML, затем вы просто добавляете xmlStartTag и xmlEndTag, как показано в коде ниже, и он обрабатывает его.
String xmlStartTag = "<text xml:space=\"preserve\">";
String xmlEndTag = "</text>";
String articleWithXml = xmlStartTag + article.getText() + xmlEndTag;
WikiClean cleaner = new WikiClean.Builder().build();
String plainWikiText = cleaner.clean(articleWithXml);
2) Когда вы читаете файл дампа Википедии напрямую (файл xml), в этом случае вы просто пропускаете его через файл, и он проходит.
WikiClean cleaner = new WikiClean.Builder().build();
String plainWikiText = cleaner.clean(XMLFileContents);