2011-06-03 86 views
0

有没有办法将wikitext数据转换为Java应用程序中的简单XML?wikitext to 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

完整的mediawiki语法非常复杂,所以如果唯一的全功能解析器在mediawiki本身内,我不会感到惊讶。 – svick 2011-06-03 23:48:11

回答

1

XML有一个树状结构,大多数情况下wikitext没有。例如,这是完全合法的:

== A section {{DoubleEqual{{echo|Sign}}}} 

模板语法本身是分层次的,并且链接到MediaWiki本身将其转换为XML(可使用Special:ExpandTemplates检查出来),但语法的其余部分多为XML或太松其他正式的描述,如上下文无关文法。

有一个rewrite effort将wikitext转换为标准的,可解析的语言,但不要期望它很快结束。

+0

你是对的!这对我来说有些悖谬,但是从生成的(并且可能是凌乱的)html中处理wiki页面比从wikitext源处理wiki页面更容易。 – Mulone 2011-06-04 10:39:14

0

http://sweble.org/wiki/Wikitext-parser/他们有一个正确完成的解析器,但我认为AST没有XML输出。

@Tgr:从句法上来说,它并不是真的与树兼容,但在语义上是这样的。

是的,处理Wikitext是一个巨大的混乱。