有没有办法在Java应用程序中将wikitext数据转换为简单的XML?
输入示例:
== A section ==
this is some text...
{{MyTemplate
|attr1=some value
|attr2=some other value
...
输出示例:
<section title='A section'>this is some text...</section>
<ValueDescription attr1='some value' attr2='some other value' ...>
这似乎是一项微不足道的任务,但我找不到一个用Java完成它的库。
Mulone
答案 0 :(得分:1)
XML有一个树结构,wikitext大部分都没有。 E. g。这是完全合法的:
== A section {{DoubleEqual{{echo|Sign}}}}
模板语法本身是分层的,MediaWiki本身将其转换为XML(您可以使用Special:ExpandTemplates来检查它),但其余的语法对于XML或其他正式描述来说太松散了。无上下文语法。
有一个rewrite effort继续将wikitext变成一种标准的,可解析的语言,但不要指望它会很快结束。
答案 1 :(得分:0)
http://sweble.org/wiki/Wikitext-parser/他们有一个正确完成的解析器,但我认为AST还没有XML输出。
@Tgr:从语法上来说它与树并不真正兼容,但在语义上它是。
是的,处理Wikitext是一个巨大的混乱。