我正在尝试获取XML内容并将其组织为对象以在json文件中检索它们。
XML结构:
<lorem date="2017-01-01">
<ipsum key="a">0001</ipsum>
<ipsum key="b">0002</ipsum>
<ipsum key="c">0003</ipsum>
<ipsum key="d">0004</ipsum>
</lorem>
和PHP
<?php
$URL = simplexml_load_file("http://www.example.com");
foreach($URL -> lorem -> ipsum as $item){
$arr = array($item["key"] => $item["value"]);
}
echo json_encode($arr);
?>
最后,我想通过以下结构返回json:
{
"a": "0001",
"b": "0002",
"c": "0003",
"d": "0004",
}
但我仍然坚持如何在ipsum
标签之间检索值。而且上面的代码也没有按预期工作。
答案 0 :(得分:1)
像这样更改你的代码
<?php
$URL = simplexml_load_file("http://www.example.com");
foreach($URL->ipsum as $item){
$arr[] = array((string)$item["key"] => (string)$item);
}
echo json_encode($arr);
//for the format you show above
$URL = simplexml_load_file("http://www.example.com");
$arr = new stdClass();
foreach($URL->ipsum as $item){
$key = (string)$item["key"];
$arr->{$key} = (string)$item;
}
echo json_encode([$arr]);
?>
(string)$item["key"]
始终访问节点属性$item->subnode
获取子节点(string)$item
获取当前节点的内容