有没有办法通过 PHP 自动将 XML 页面转换为 JSON? [复制]

Posted

技术标签:

【中文标题】有没有办法通过 PHP 自动将 XML 页面转换为 JSON? [复制]【英文标题】:Is there a way to convert an XML page to JSON automatically via PHP? [duplicate] 【发布时间】:2012-05-18 11:31:03 【问题描述】:

可能重复:php convert XML to JSON

这是我的输出 XML 示例的样子:

<item>
 <Barcode>0602527522593</Barcode>
 <albumid>1818</albumid>
 <Title>Gold</Title>
 <Country>Sweden</Country>
 <Format>CD</Format>
 <Length></Length>
 <Number_of_Discs></Number_of_Discs>
 <Type>album</Type>
 <Description></Description>
 <Band_or_Artist>Adams, Ryan</Band_or_Artist>
</item>

是否有易于使用的内置 PHP 函数或插件快速将其转换为 JSON 并输出?如果不是内置的,我应该使用哪个扩展?

【问题讨论】:

既然您说此 XML 是您的输出,那么从您的源数据中生成 JSON 可能比生成 XML 然后将其转换为 JSON 更容易。数据从何而来? 【参考方案1】:

作为在客户端执行此操作的替代方法是来自 fyneworks 的 XML to JSON plugin。

【讨论】:

【参考方案2】:

有很多。这是来自 IBM 的一个:http://www.ibm.com/developerworks/xml/library/x-xml2jsonphp/

【讨论】:

【参考方案3】:

您可以使用 SimpleXML (http://php.net/manual/en/book.simplexml.php) 读取 XML 输入,然后使用 json_encode (http://php.net/manual/en/book.json .php) 来创建输出。

您可能只想遍历节点列表并将所有内容放入数组中,使用标签名称作为键,应该相当简单。

【讨论】:

【参考方案4】:

这样的?

<?php

$xmlstr = "<item>
 <Barcode>0602527522593</Barcode>
 <albumid>1818</albumid>
 <Title>Gold</Title>
 <Country>Sweden</Country>
 <Format>CD</Format>
 <Length></Length>
 <Number_of_Discs></Number_of_Discs>
 <Type>album</Type>
 <Description></Description>
 <Band_or_Artist>Adams, Ryan</Band_or_Artist>
</item>";

$movies = new SimpleXMLElement($xmlstr);
echo $output = json_encode($movies);
?>

【讨论】:

以上是关于有没有办法通过 PHP 自动将 XML 页面转换为 JSON? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法使用 KnockoutJS 将 XML 文件转换为 CSV?

使用 API 的 XML 到 CSV 转换器

有没有办法让 PHP 将 sql 结果直接转换为 JSON?

将php数组转换为xml文件

HtmlUnit - 将 HtmlPage 转换为 HTML 字符串?

PHP - 有没有办法将字符串中的数组转换为 PHP 中的有效数组?