“反向”XSLT(用于解析和构建XML DOM的语言)

时间:2012-08-02 19:11:33

标签: java parsing xslt lex ebnf

我使用XSLT转换它:

1)

<fruit>
  <apple count="2"/>
  <banana count="3"/>
</fruit>

进入这个:

2)

Apple: 2
Banana: 3

是否有一个库作为文本数据的解析器,允许对预期令牌进行描述性声明(同时考虑扩展Backus-Naur Form | EBNF |和基于Lex / Yacc正则表达式的提示)并从中构建XML DOM ?

2 个答案:

答案 0 :(得分:2)

Is there a library that serves as a parser for text data which allows descriptive declaration of the expected tokens (think both Extended Backus–Naur Form |EBNF| and Lex/Yacc regex-based hints) and builds an XML DOM from it?

是。 FXSL 2.0的函数f:lr-parse()完全符合。这是用纯XSLT 2.0编写的,它实现了一个通用的(表驱动的) LR-1 parser ,它接受包含解析表的XML文件和包含“句子”的文本文件作为输入。被解析。

我已经将这个函数用于许多解析器,从玩具算术表达式到中型JSON,再到非常大的XPath 2.0语言。

请参阅我的博客中的这篇文章 Transforming JSON

答案 1 :(得分:1)

A认为您不会找到任何语言的库来直接实现将任何形式的任何文本编译成XML的广泛目标。

尽管可能不是你想要的,但是知道XSLT 2.0可以从文本文件中获取输入,根据某些规则标记字符数据并输出XML可能是有用的。有关证据,请参阅我的blog entry here,其中显示了针对csv到xml转换问题的XSLT 2.0通用解决方案。