【问题标题】:Bad JSON formatting after parsing XML feed using SimpleXML使用 SimpleXML 解析 XML 提要后 JSON 格式错误
【发布时间】:2014-11-21 15:14:00
【问题描述】:

我正在解析 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"
   }
 }
]

为什么将“标题”作为键/值对添加?

【问题讨论】:

  • 不看xml不知道,但你可以修复:"title" => $article->title[0],

标签: php xml json simplexml


【解决方案1】:

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

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

【讨论】:

  • 看来@Steve 击败了我,尽管他在 cmets 中这样做了。如果他将评论移至答案,您应该接受。
  • 谢谢你们!我能够通过转换为字符串来解决问题.... "title" => (string)$article->title
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-03
  • 1970-01-01
相关资源
最近更新 更多