我想获取item元素中最后一个id的值。例如,在下面的xml中,我想得到值2并为输入的下一个项的id增加一个。因此,如果输入下一个项目,则ID将自动为3,依此类推。尝试了几种方式,但我仍然无法让它工作。有什么建议? items.xml
<?xml version="1.0"?>
<items>
<item>
<id>1</id>
<name>N95</name>
<desc>Nokia</desc>
<price>299</price>
<quantity>11</quantity>
</item>
<item>
<id>2</id>
<name>S4</name>
<desc>Samsung</desc>
<price>500</price>
<quantity>50</quantity>
</item>
</items>
php文件
$x = file_get_contents('../../data/items.xml');
$root = $x->documentElement; //root element(items)
$lastId = $root->lastChild->firstChild->firstChild->nodeValue; //navigate to get the value of last item id
$newItemId = $lastId + 1;
答案 0 :(得分:1)
您可以使用带有xpath的SimpleXML
来定位最后一个元素。例如:
$xml = simplexml_load_file('../../data/items.xml');
$last_item = $xml->xpath('//item[last()]');
$last_id = (int) $last_item[0]->id;
$newItemId = $last_id + 1;
echo $newItemId; // 3
或者简单如下:
$count = count($xml);
$last_item = $xml->item[$count-1];
$last_id = (int) $last_item->id;
$newItemId = $last_id + 1;