2016-02-29 29 views
0

我只需要保存以下Xml文档的一部分,然后将其转换为Json,即其中包含“行”数据的节点。提取Xml文档的一部分并将其转换为PHP中的Json

<?xml version="1.0" encoding="utf-8"?> 
    <report> 
    <table> 
     <row device="Mobile devices with full browsers" cost="3940000" avgPosition="2.0" avgCPC="3940000" ctr="100.00%" clicks="1" impressions="1" convertedClicks="0" searchTerm="purple jeep near elgin for sale" keyword="jeepdealership" campaignState="enabled" adGroupID="7751248218" campaign="Zeigler CDJ_Dealer Campaign" campaignID="134270778"/> 
     <row device="Mobile devices with full browsers" cost="3930000" avgPosition="1.0" avgCPC="3930000" ctr="100.00%" clicks="1" impressions="1" convertedClicks="0" searchTerm="jeep wrangler rubicon 2015" keyword="jeepdealership" campaignState="enabled" adGroupID="7751248218" campaign="Zeigler CDJ_Dealer Campaign" campaignID="134270778"/> 
     <row device="Mobile devices with full browsers" cost="2010000" avgPosition="3.0" avgCPC="2010000" ctr="100.00%" clicks="1" impressions="1" convertedClicks="0" searchTerm="altitute jeep cherokee" keyword="2015 jeep Cherokee" campaignState="enabled" adGroupID="18188246418" campaign="Zeigler CDJ_Targeted Campaign" campaignID="134270898"/> 
     <row device="Mobile devices with full browsers" cost="3990000" avgPosition="1.0" avgCPC="3990000" ctr="100.00%" clicks="1" impressions="1" convertedClicks="0" searchTerm="2012 jeep cherokee" keyword="2015 +Jeep +cherokee" campaignState="enabled" adGroupID="18188246418" campaign="Zeigler CDJ_Targeted Campaign" campaignID="134270898"/> 
    </table> 

这里是我的代码:

$doc = new DOMDocument; 
$doc->load('report.xml'); 
$node = $doc->documentElement; 
$subnodes = $node->getElementsByTagName('row'); 
$json = json_encode($node->saveXML($subnodes)); 

在这里,我试图提取具有 “行” 的XML的节点,然后将其转换成JSON。

我得到的错误是:

Fatal error: Call to undefined method DOMElement::saveXML() in C:\PHP 
\Optima\adwords-examples-and-lib-8.1.0\examples\AdWords\v201601\Reporting 
\DownloadCriteriaReportWithAwql.php on line 130 

任何方向将不胜感激。

+0

我试过了,得到了同样的错误:可捕获的致命错误:传递给DOMDocument :: saveXML()的参数1必须是一个在 DOMNode的姿态 – PiE

回答

0
$xml = simplexml_load_file('report.xml'); 
$json = json_decode(json_encode($xml->table))->row; 

这会给你一个行数组,其中每行数据存储在一个json对象中。

相关问题