如何使用 SimpleXML 在 PHP 中合并两个 XML 文档?
我有一个看起来像这样的数据库行。
ID (int): 123
Name (string): SomeName
Data (string): <data><foo>one</foo></bar>two</bar></data>
我需要按以下方式将此数据格式化为 XML。
<row>
<id>123</id>
<name>SomeName</name>
<data>
<foo>one</foo>
<bar>two</bar>
</data>
<row>
我目前正在使用 SimpleXML 尝试构建此文件,但我不确定如何将现有 XML 插入到我尝试构建的新 XML 文档中。
如果 PHP 附带了其他标准 XML 构建器,我也愿意使用它们。字符串连接不是一个可接受的答案。
编辑:看起来 SimpleXML 不能满足我的需要。我想此时我需要其他 XML 解析器的建议。
I have a database row that looks like this.
ID (int): 123
Name (string): SomeName
Data (string): <data><foo>one</foo></bar>two</bar></data>
I need to format this data as XML in the following way.
<row>
<id>123</id>
<name>SomeName</name>
<data>
<foo>one</foo>
<bar>two</bar>
</data>
<row>
I'm currently using SimpleXML to try to build this, but I'm not sure how to go about inserting the existing XML into the new XML document I'm trying to build.
If there are other standard XML builders that come with PHP, I'm open to using those, too. String concatenation is not an acceptable answer.
Edit: It looks as though SimpleXML won't do what I need. I guess at this point, I need suggestions for other XML parsers.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
经过测试,它有效。将其转换为您的实际应用程序应该很简单。可能有更灵活的方法,但我不知道。他们称其为 SimpleXML 并不是无缘无故的:)
Tested and it works. It should be trivial to convert this to your actual application. There may be a more flexible way of doing it, but I'm not aware of it. They don't call it SimpleXML for nothing :)
测试了这段代码,它也有效。
您必须创建两个 SimpleXml 对象,如上面的答案。除此之外,您只需添加
其他元素,例如添加类变量。
将添加到最终的 xml 字符串/文件中。
不确定您是否需要
。
如果没有,您可以通过以下方式将其取出:
您可以查看 http://www. php.net/manual/en/simplexmlelement.asxml.php 了解有关将 SimpleXml 对象重新保存回 xml 字符串/文件的更多信息。
Tested this code and it also works.
You will have to create two SimpleXml Objects like the answer above. Other than that you can just add
additional elements like adding class vars. A
<?xml version="1.0"?>
will be added to the final xml string/file.Not sure if you need the
<?xml version="1.0"?>
.If not you can take it out with:
You can check out http://www.php.net/manual/en/simplexmlelement.asxml.php for more info on re-saving SimpleXml objects back to xml strings/files.
^ 为后代提供答案。
^ An answer for posterity.