我的问题是我正在解析一个XML文件,而这个文件包含一些我不想作为JSON数据导出的信息。在我的情况下,我想要一个函数返回第一个' [' caratere 这是php代码:
<?php
class XmlToJsonConverter {
public function ParseXML ($url) {
$fileContents= file_get_contents($url);
// Remove tabs, newline, whitespaces in the content array
$fileContents = str_replace(array("\n", "\r", "\t"), '', $fileContents);
$fileContents = trim(str_replace('"', "'", $fileContents));
$myXml = simplexml_load_string($fileContents);
$json = json_encode($myXml);
return $json;
}
}
//Path of the XML file
$url= 'http://www.lequipe.fr/rss/actu_rss_Football.xml';
//Create object of the class
$jsonObj = new XmlToJsonConverter();
//Pass the xml document to the class function
$myjson = $jsonObj->ParseXMl($url);
print_r ($myjson);
?>
这是JSON结果的一部分:
{&#34; @属性&#34; {&#34;版本&#34;:&#34; 2.0&#34;}&#34;信道&#34; {&#34;标题& #34;:&#34; L&#39; Equipe.fr Actu Football&#34;,&#34; link&#34;:&#34; http://www.lequipe.fr",&#34 ;描述&#34;:&#34; L&#39; Equipe.fr,Toute l&#39; actualit \ u00e9 du football&#34;,&#34; language&#34;:&#34; fr&#34;, &#34; copyright&#34;:&#34;版权所有L&#39; Equipe.fr&#34;,&#34; pubDate&#34;:&#34; Wed,2015年4月22日16:31:08 + 0200& #34;&#34;图像&#34 ;: {&#34; URL&#34;:&#34; HTTP://www.lequipe.fr/rss/logo_RSS.gif",&#34;标题&#34;:&#34; L&#39; Equipe.fr&#34;&#34;连结&#34;:&#34; HTTP://www.lequipe.fr",&#34;宽度&#34;:&#34; 119&#34;&#34;高度&#34;:&#34; 28&#34;}&#34;项目&#34;:[{&#34;标题&# 34;:&#34; Foot - Cha
我希望结果从&#39; [&#39;
开始谢谢
答案 0 :(得分:1)
在编码json之前删除您不想要的所有属性:
public function ParseXML ($url) {
$fileContents= file_get_contents($url);
// Remove tabs, newline, whitespaces in the content array
$fileContents = str_replace(array("\n", "\r", "\t"), '', $fileContents);
$fileContents = trim(str_replace('"', "'", $fileContents));
$myXml = simplexml_load_string($fileContents);
//--------------
unset($myXml['@attributes']);
unset($myXml['channel']);
unset($myXml['image']);
//--------------
$json = json_encode($myXml);
return $json;
}
或者如果您只需要该项目:
public function ParseXML ($url) {
$fileContents= file_get_contents($url);
// Remove tabs, newline, whitespaces in the content array
$fileContents = str_replace(array("\n", "\r", "\t"), '', $fileContents);
$fileContents = trim(str_replace('"', "'", $fileContents));
$myXml = simplexml_load_string($fileContents);
//--------------
$json = json_encode($myXml['item']);
return $json;
}