我使用 XSLT 来转换它:
1)
<fruit>
<apple count="2"/>
<banana count="3"/>
</fruit>
进入这个:
2)
Apple: 2
Banana: 3
是否有一个库用作文本数据的解析器,它允许对预期标记进行描述性声明(想想扩展的 Backus–Naur 形式 |EBNF| 和基于 Lex/Yacc 正则表达式的提示)并从中构建 XML DOM?
是否有一个库用作文本数据的解析器,它允许对预期标记进行描述性声明(想想扩展的 Backus–Naur 形式 |EBNF| 和基于 Lex/Yacc 正则表达式的提示)并从中构建 XML DOM?
是的。FXSL 2.0有一个功能f:lr-parse()
可以做到这一点。这是用纯 XSLT 2.0 编写的,并实现了一个通用的(表驱动的)LR-1 解析器,它接受一个包含解析表的 XML 文件和一个包含要解析的“句子”的文本文件作为输入。
我已经将这个函数用于许多解析器,从玩具算术表达式到中型——JSON,再到非常大的——XPath 2.0——语言。
例如,请参阅我博客中的这篇文章:转换 JSON
不要认为您会找到任何语言的库来直接实现将任何形式的任何文本编译成 XML 等广泛目标。
尽管可能并不完全符合您的要求,但了解 XSLT 2.0 可以从文本文件中获取输入、根据某些规则标记字符数据并输出 XML 可能很有用。有关证据,请参见我的博客条目,其中显示了一个 XSLT 2.0 通用解决方案,用于解决 csv 到 xml 转换的问题。