PHP:从XML中提取信息以创建JSON

时间:2012-05-29 14:50:29

标签: php xml json

我需要从在线提取的XML中提取一些数据,并从结果中创建一个JSON。

以下是我遇到的问题的简化版本:

$XML=simplexml_load_file("http://somewhere.on.the.net/my.xml");
$result = array();

$tmpp = $XML->S->S["time"];
echo $tmpp.'<br/>';;

$result['DATE'] = $tmpp;
echo json_encode($result);

我明白了:

2012-05-29
{"DATE":{"0":"2012-05-29"}}

我希望:

{"DATE":"2012-05-29"}

我怎样才能做到这一点?感谢。

更新

以下是XML的结构:

<g:e>
<S>
 <S time="2012-05-29">
   <S info1="a" info2="b"/>
   <S info1="d" info2="m"/>
   <S info1="q" info2="l"/>
   ...
 </S>
 <S time="2011-04-09">
   <S info1="a" info2="z"/>
   ...
   </S>
 </S>
 ...
</S>
</g:e>

2 个答案:

答案 0 :(得分:3)

看起来您可能需要从XML节点获取字符串值:

// Cast the value to a string.
$tmpp = (string)$XML->S->S["time"];

由于SimpleXML在对象上实现了自定义echo,因此它看起来像是__toString()时的裸日期值,但是如果你var_dump($XML->S->S["time"]),你会发现它不仅仅是{{1}}日期字符串。

答案 1 :(得分:0)

尝试使用$ tmpp变量的第一个键。

$result['DATE'] = $tmpp[0];