还没有找到直接的解决方案,而是希望使用SimpleXML做到这一点……希望通过发送的网址中的属性(id)获得单个节点和子节点
点击地址...
www.website.com/index.php#929495820
XML
<archive>
<unit id="925535820">
<data>Blah</data>
<link>url</link>
</unit>
<unit id="929495820">
<data>Blah</data>
<link>url</link>
</unit>
<unit id="929495821">
<data>Blah</data>
<link>url</link>
</unit> ... and many more ...
</archive>
我有php,它将整个XML转换成一个数组,然后进行拼接以限制显示的内容(见下文),但是我想要的是从数组中获取单个值的URL。能做到吗?如果可以,简单还是Dom?请说简单。我在Dom工作时运气不好。
$xml_get = 'filename.xml'
$xml_array = json_decode(json_encode($xml_get), 1);
$master = $xml_array['unit'];
// Show Last 200
$master = array_slice($master, 1, 200);
foreach(array_reverse($master) as $arc)
{
$last_id = $arc['@attributes']['id'];
$last_data = $arc['data'];
$last_link = $arc['link'];
// Do stuff with values...
}
答案 0 :(得分:0)
如果要使用SimpleXML,可以使用simplexml_load_file加载文件并检查attributes
作为ID。
然后使用例如foreach
或xpath表达式:
$elm = simplexml_load_file("filename.xml");
foreach ($elm->unit as $item) {
if ((string)$item->attributes()->id === "929495820") {
echo $item->data;
echo "<br>";
echo $item->link;
}
}
$result = $elm->xpath("/archive/unit[@id='929495820']");
echo $result[0]->data;
echo "<br>";
echo $result[0]->link;