加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

解析和访问不受信任的XML

发布时间:2020-12-16 23:28:41 所属栏目:百科 来源:网络整理
导读:我有一些 XML转换网关,它接受一种格式的 XML,并从我不想信任的来源产生它.现在,这些转换可能是微不足道的,就像在这里和那里更改几个attrs,或者相当复杂,我需要从头开始反汇编整个输入和构建输出.所以,基本上我有两个问题: 解析XML.它需要快速(最好)和工作而
我有一些 XML转换网关,它接受一种格式的 XML,并从我不想信任的来源产生它.现在,这些转换可能是微不足道的,就像在这里和那里更改几个attrs,或者相当复杂,我需要从头开始反汇编整个输入和构建输出.所以,基本上我有两个问题:

>解析XML.它需要快速(最好)和工作而不会炸毁原子表(我看着你,xmerl),因为来源不是那么可靠.
>轻松访问深层嵌套元素以检索重建所需的信息.

虽然有一些解析XML的选项,比如fast_xml和erlsom库,但它们生成的结构相当难以访问,因为它们与xmerl_xpath不可比,到目前为止,这是我发现获得深层嵌套数据的唯一理智方式.

所以问题是,如果没有花费大量时间来创建我自己的解决方案,是否有办法实现这些目标?

附:真的吗?试图关闭这个问题?我不是在问100个可用的库,我问的是如何解决大多数决定使用Erlang进行XML处理的人可能遇到的问题.

解决方法

我无法为此问题找到任何现成的解决方案,所以我最终做了以下事情:

1)使用Erlsom或Fast XML Erlang包将XML字符串解析成所谓的简单格式,如下所示:{“tag”,[{“attr”,“value”}],[“text node”]}其中,孩子们可以是一个包含一个字符串的列表,如示例中所示,或嵌套元素的列表.

2)实现我自己的函数,根据给定的路径获取嵌套元素,最基本的用法不超过50个LOC

3)实现我自己的XML构建器,因为由于原子问题,xmerl不能再次使用.现在,这部分是相当有争议的,因为它有很多机会它有一些错误,不支持注释,cdata等等,但有一些测试与适当的数据,希望我能够使它足够稳定.无论如何我还有什么选择?!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读