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


Bad JSON formatting after parsing XML feed using SimpleXML

我正在解析XML提要,并尝试创建JSON输出。我似乎无法弄清楚为什么我的 JSON 格式关闭了。这是我用来循环遍历 XML 源、解析它并构建 JSON 输出的代码:

$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);
}

这是输出:

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

但是,这是我需要的输出格式:

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

为什么要将"标题"添加为键/值对?

看起来$article->title是一个数组,而不是您想要的字符串。XML 的示例将帮助我们解释原因,但同时您需要访问该数组的元素 0:

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