gpt4 book ai didi

php - 如何序列化/反序列化 SimpleXML 对象?

转载 作者:IT王子 更新时间:2023-10-29 00:08:47 26 4
gpt4 key购买 nike

我看过一些creative solutions用于处理序列化 SPL 对象,但正在寻找更多选项(或详细说明)。我将嵌套的序列化对象(其中一个是 SimpleXML)存储在数据库中,稍后才取消序列化。这显然会导致一些问题。

$s = new SimpleXmlElement('<foo>bar</foo>');
$ss = serialize($s);
$su = unserialize($ss);
// Warning: unserialize() [function.unserialize]: Node no longer exists...

有没有人了解用于处理序列化 SPL 对象的高度可靠的方法? __sleep()/__wakeup() 覆盖?强制转换为标准类?转换为字符串,然后序列化?

感谢任何帮助。

[编辑:这些 XML 模式的范围和变体变化太大,无法与 ORM 对应。在最基本的层面上,它们是有状态进程中的任意有效负载,在 restful API 中触发。]

最佳答案

尽管存在关于适当性的问题,您可以像这样将其转回 XML:

$xml = $simpleXmlElem->asXML();

然后,当您从数据库中提取它时:

$simpleXmlElem = simplexml_load_string($xml);

至于仅序列化大块 XML 是否合适,将 XML 放入数据库确实会消除使用关系系统的大部分优势,但您确实拥有能够容纳任意数据的优势工作量。如果某些字段是通用的,和/或您从正确规范化它们中获益(例如,您想根据这些字段进行选择),请将它们移到规范化列中。

关于php - 如何序列化/反序列化 SimpleXML 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2970957/

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