我需要从在线提取的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>
答案 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];