gpt4 book ai didi

php - 将 XML 数组输出到纯 XML

转载 作者:行者123 更新时间:2023-12-04 06:56:05 28 4
gpt4 key购买 nike

我有一个脚本,它使用 CURL 收集 4 个 URL (XML) 并返回一个包含 4 个项目的数组,每个项目包含 URL 的结果。

这是数组:

array(3) {
[0]=>
string(41772) "<?xml version="1.0" encoding="UTF-8"?>
<statuses type="array">
<status>
<created_at>Tue Mar 30 20:58:53 +0000 2010</created_at>
<id>11328253513</id>
<text>...</text>
<source...</source>
<truncated>false</truncated>
<in_reply_to_status_id></in_reply_to_status_id>
<in_reply_to_user_id></in_reply_to_user_id>
<favorited>true</favorited>
<in_reply_to_screen_name></in_reply_to_screen_name>
<user>
<id>1...</id>
<name>....</name>
</status>
</statuses>
"
[1]=>
string(20630) "<?xml version="1.0" encoding="UTF-8"?>
<statuses type="array">
<status>
<created_at>Sun Feb 28 14:12:30 +0000 2010</created_at>
<id>...</id>
<text>...</text>
<source>&lt;a

etc...

如何轻松地从数组中输出 XML?我还需要将 3 个 XML 结构合并为一个,其中 <statuses>在每个数组之间开始和结束。

最佳答案

对于像这样的简单合并,您也可以这样做:

$xml = implode('', $theArray); 
$xml = str_replace(array('<?xml version="1.0" encoding="UTF-8"?>',
'<statuses type="array">',
'</statuses>'), '', $xml);

$xml = '<?xml version="1.0" encoding="UTF-8"?>'
. '<statuses type="array">'
. $xml
. '</statuses>';

注意:未经测试,但基本上它所做的只是将所有 XML 文档粘合成一个,然后删除 XML Prologs 和所有根节点,因此只保留状态节点。然后将它们包装到有效的 XML 框架中,例如再次序言和根节点。完毕。

如果你想在之后使用 DOM 节点,使用 DOM 会更可靠,因为 DOM 知道节点是什么,而字符串函数不知道它们。如果您决定使用 DOM,请考虑 loading the documents with load而不是 CURL,如 Pascal 的示例所示 - 或者先使用上面的,然后使用 load that document from the string with loadXml() .

不管你决定使用什么,都不要使用正则表达式。那就是疯狂之路。

关于php - 将 XML 数组输出到纯 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2554671/

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