douweida2878 2014-11-21 15:14
浏览 51

使用SimpleXML解析XML Feed后的错误JSON格式

I'm parsing an XML feed, and attempting to create JSON output. I can't seem to figure out why my JSON formatting is off. This is the code I'm using to loop through the XML feed, parse it, and build JSON output:

$xml = simplexml_load_file($myxmlfeed, 'SimpleXMLElement', LIBXML_NOERROR | LIBXML_NOWARNING);

foreach ($xml->{'xml-node-name'} as $article)
{
  $tmp = array(
            "title" => $article->title,
            "image" => null,
            "resource" => array(
                    "articleLink" => $site)
            );
  array_push($array, $tmp);
  unset($tmp);
}

This is the output:

[
 {
   "title":{
     "0":"This is my article title"
   },
   "image":null,
   "resource":{
     "articleLink":"http://www.website.com/link.html"
   }
 }
]

However, this is the output format I need:

[
 {
   "title":"This is my article title",
   "image":null,
   "resource":{
     "articleLink":"http://www.website.com/link.html"
   }
 }
]

Why is the "title" being added as a key/value pair?

  • 写回答

1条回答 默认 最新

  • doujiao1949 2014-11-21 15:20
    关注

    It would appear that $article->title is an array, not a string as you desire. A sample of the XML would help us explain why, but in the mean time you need to be accessing element 0 of that array:

    $tmp = array(
        "title" => $article->title[0],
        "image" => null,
        "resource" => array(
            "articleLink" => $site
        )
    );
    
    评论

报告相同问题?

悬赏问题

  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序