我有一些XML转换网关,它接受一种格式的XML,并从我不想信任的来源产生它.现在,这些转换可能是微不足道的,就像在这里和那里更改几个attrs,或者相当复杂,我需要从头开始反汇编整个输入和构建输出.所以,基本上我有两个问题:
解析XML.它需要快速(最好)并且工作时不会炸毁原子表(我看着你xmerl
),因为来源不是那么可靠.
轻松访问深层嵌套元素以检索重建所需的信息.
虽然有一些解析XML的选项,比如fast_xml
和erlsom
库,但它们生成的结构很难访问,因为它们不可比较,xmerl_xpath
到目前为止,这是我发现获得深层嵌套数据的唯一理智方式.
所以问题是,如果没有花费大量时间来创建我自己的解决方案,是否有办法实现这些目标?
PS认真吗?试图关闭这个问题?我不是在问100个可用的库,我问的是如何解决大多数决定使用Erlang进行XML处理的人可能遇到的问题.
我无法找到解决此问题的任何现成解决方案,因此我最终执行了以下操作:
1)使用Erlsom
或Fast XML
Erlang 包将 XML 字符串解析为所谓的简单格式,如下所示:{"tag", [{"attr", "value"}], ["text node"]}
其中子项可以是包含一个字符串的列表(如示例中所示),也可以是嵌套元素的列表。
2)实现我自己的函数来根据给定路径获取嵌套元素,因为最基本的用法不会超过50个LOC
3) 实现我自己的 XML 构建器,因为xmerl
由于原子问题而无法再次使用。现在,这部分相当有争议,因为它很可能存在一些错误,并且不支持注释、cdata 等,但通过使用正确的数据进行一些测试,希望我能够使其足够稳定。到底我还有什么选择?!
归档时间: |
|
查看次数: |
577 次 |
最近记录: |