1

我需要从在线获取的 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>
4

2 回答 2

3

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

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

它看起来像一个裸日期值echo,因为 SimpleXML__toString()在对象上实现了自定义,但如果您var_dump($XML->S->S["time"])会看到它不仅仅是日期字符串。

于 2012-05-29T14:53:23.597 回答
0

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

$result['DATE'] = $tmpp[0];
于 2012-05-29T14:53:47.030 回答