我有一个XML文件(filename.xml)不断被添加到:
<archive>
<unit id="14044669018">
<data>Testing #1</data>
<link/>
<img/>
<tpimg/>
<odate>14:04:46 69 018</odate>
<gdate>2018-05-27 14:04:46</gdate>
</unit>
<unit id="14045769018">
<data>Testing #2 with link</data>
<link>https://website.com/user_xml/index.php</link>
<img/>
<tpimg/>
<odate>14:04:57 69 018</odate>
<gdate>2018-05-27 14:04:57</gdate>
</unit>
<unit id="14051169018">
<data>Testing #3 with img link</data>
<link/>
<img/>
<tpimg>https://website.com/ex.jpg</tpimg>
<odate>14:05:11 69 018</odate>
<gdate>2018-05-27 14:05:11</gdate>
</unit>
</archive>
我想首先将最后一个unit
转换为数组,然后转换为单个int,以便它们可以在不同区域中回显。
尝试了7个DOM和xpath示例,包括我认为可行的这个示例:
$filename = 'filename.xml';
$xml = simplexml_load_file($filename);
$last = $xml->xpath('/archive/unit[last()]');
$last = $last[0]; // <data> (example)
echo $last;
但即使经过一些调整,我也无处可去。感谢任何方向帮助。
答案 0 :(得分:0)
使用以下方法
首先将它从XML转换为数组,然后只获取最后一个元素
$object = simplexml_load_string($xml);
$json = json_encode($object);
$final_array = json_decode($json, true);
$last = end($final_array ['unit']);
输出如下:
Array
(
[@attributes] => Array
(
[id] => 14051169018
)
[data] => Testing #3 with img link
[link] => Array
(
)
[img] => Array
(
)
[tpimg] => https://website.com/ex.jpg
[odate] => 14:05:11 69 018
[gdate] => 2018-05-27 14:05:11
)