gpt4 book ai didi

xml - 解析和访问不受信任的 XML

转载 作者:数据小太阳 更新时间:2023-10-29 01:59:18 25 4
gpt4 key购买 nike

我有某种 XML 转换网关,它接受一种格式的 XML,并从我不愿信任的来源将其生成为另一种格式。现在,这些转换可以是微不足道的,比如在这里和那里更改几个属性,也可以是非常复杂的,我需要分解整个输入并从头开始构建输出。所以,基本上我有两个问题:

  1. 解析 XML。它需要快速(最好)并且在不破坏原子表的情况下工作(我正在看着你,xmerl)因为来源不是那么可靠。

  2. 轻松访问深层嵌套的元素以检索重建所需的信息。

虽然有一些解析 XML 的选项,例如 fast_xmlerlsom 库,但它们生成的结构很难访问,因为它们与 xmerl_xpath 到目前为止,这是我发现获取深层嵌套数据的唯一合理方法。

所以问题是,是否有一种方法可以在不花费大量时间创建自己的解决方案的情况下实现这些目标?

附言严重地?试图关闭这个问题?我不是在问从 100 个可用库中使用哪个库,我是在问如何解决大多数决定使用 Erlang 进行 XML 处理的人可能会遇到的问题。

最佳答案

我找不到解决这个问题的任何现成的解决方案,所以我最终做了以下事情:

1) 使用 ErlsomFast XML Erlang 包将 XML 字符串解析为所谓的简单格式,如下所示:{"tag", [{ "attr", "value"}], ["text node"]} 其中 children 可以是包含一个字符串的列表,如示例中所示,也可以是嵌套元素的列表。

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

3) 实现我自己的 XML 构建器,因为 xmerl 由于原子问题无法再次使用。现在,这部分颇有争议,因为它很可能有一些错误并且不支持注释、cdata 和诸如此类的东西,但是通过使用适当的数据进行一些测试,希望我能够使它足够稳定。我还有什么选择?!

关于xml - 解析和访问不受信任的 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45758886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com