2014-11-21 1 views
0

XML 피드를 구문 분석하고 JSON 출력을 생성하려고합니다. 내 JSON 형식이 해제 된 이유를 알 수없는 것 같습니다. 이것은 출력SimpleXML을 사용하여 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); 
} 

:이 그것을 구문 분석 및 JSON 출력 구축 내가 XML 피드를 통해 루프를 사용하고 코드입니다 그러나

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

을이 출력 형식은 I 필요 :

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

"제목"이 키/값 쌍으로 추가되는 이유는 무엇입니까?

+1

XML을 보지 않고 아니 생각하지만 고칠 수 있습니다 ' "제목"= > $ article-> title [0], ' – Steve

답변

0

$article->title은 원하는 문자열이 아니라 배열로 보입니다. 는 XML의 샘플이 이유를 설명 할 것이지만, 그 동안 당신이 그 배열의 원소 0에 접근 할 필요가 :

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

@Steve가 나를 비난하는 것처럼 보입니다. 그가 대답에 대한 자신의 의견을 옮기면, 그것을 받아 들여야합니다. – JAAulde

+0

둘 다 감사합니다! 문자열에 캐스팅하여 문제를 해결할 수있었습니다. "title"=> (string) $ article-> title –