使用 mysql、php 和 simpleXML 存储/检索部分 xml 文档
我正在从合作伙伴 API 获取 xml 文档,并且希望将单独的节点存储到 mysql 数据库中,以便我可以使用特定节点重建它。我绝对不想将完整的文档解析到数据库中,因为我只关心 ID 和各个节点的总数。
例如:
<list>
<child>20-30 grandchildren</child>
<child></child>
<child></child>
...
<child></child>
</list>
我希望能够将块放入 mysql 数据库中,然后恢复它们。这就是我失败的地方:我使用 simple_xml 来获取节点,并使用 REPLACE 将其添加为文本,但我不确定他们如何将其恢复为 .对于数组,我会序列化然后反序列化,但这里失败了。
我缺少一个明显的方法吗?
I'm taking an xml document down from a partner API and I'd like to store the separate nodes into a mysql database so I can rebuild it with specific nodes. I absolutely do not want to parse out the complete document into the database as all I care about are the IDs and the individual nodes in total.
So for example:
<list>
<child>20-30 grandchildren</child>
<child></child>
<child></child>
...
<child></child>
</list>
I'd like to be able to put the blocks into a mysql database and then restore them. That's where I'm falling down: I use simple_xml to get the node and I use REPLACE to add it as a text, but I'm not sure how to them restore it back to . For an array, I'd serialize and than unserialize but that fails here.
Is there an obvious method I'm missing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
asXML()
然后您可以使用simplexml_load_string( )
您无法使用serialize()序列化SimpleXMLElement,它将无法按预期工作。
You serialize SimpleXMLElement objects to XML with
asXML()
then you can load the document normally withsimplexml_load_string()
You cannot serialize SimpleXMLElement with serialize(), it will not work as expected.