Perl XML::Twig 输出作为哈希引用

发布于 2024-10-22 03:31:08 字数 127 浏览 4 评论 0原文

如何使用 XML::Twig 获取 XML 文档的输出作为 hashref,类似于我们通过 XML::SimpleXMLout()< /代码>?

How can I get the output of an XML document as hashref using XML::Twig similar to what we get through XML::Simple's XMLout()?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鱼忆七猫命九 2024-10-29 03:31:08

发布答案,因为实际答案在评论中:

OP问题的解决方案是使用 XML::Twig 的函数simplify。这会将解析后的树枝数据结构转换为哈希值。它故意与 XML::Simple 类似 - 但这可能是一个坏主意,因为首先使用 XML::Simple 是一个坏主意。

您实际上“丢失了数据”,因为散列不支持重复键(而 XML 支持),并且 XML 不支持数组,而散列则支持。

对于简单的数据结构来说,这并不重要。但使用 XML::Twig 您通常根本不需要这样做。例如,使用 childrentwig_handler 进行迭代。

Posting answer because actual answer is in comments:

Solution to the OP's problem was to use XML::Twig's function simplify. This turns the parsed twig datastructure into a hash. Deliberately it's similar to XML::Simple - but that's probably a bad idea for all the reasons that using XML::Simple is in the first place.

You effectively 'lose data' because hashes don't support duplicate keys (where XML does) and XML doesn't support arrays, where hashes will.

For straightforward data structures, this doesn't matter much. But with XML::Twig you often simply don't need to. Iterating with children or a twig_handler for example.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文