我想用php简单的xml解析一些像这样的树。
如何加上所有tree->item->object->num
?
我想要一个int 16
(2 + 4 + 7 + 2 + 1
)
<tree> <item> <object> <num>2</num> </object> <object> <num>4</num> </object> </item> <item> <object> <num>7</num> </object> <object> <num>2</num> </object> </item> <item> <object> <num>1</num> </object> </item> </tree>
答案 0 :(得分:4)
$xml = new SimpleXMLElement($yourXMLString);
$acc = 0;
foreach($xml->item as $item)
{
foreach($item->object as $object)
{
$acc += $object->num;
}
}
echo $acc; // 16
答案 1 :(得分:2)
简单/难看的版本:
$dom = new DOMDocument();
$dom->loadXML($your_xml);
$xp = new DOMXPath($dom);
$nums = $xp->query('//num');
$sum = 0;
foreach($nums as $num) {
$sum += $num->nodeValue;
}
echo $sum;
答案 2 :(得分:0)
$tree = simplexml_load_string($xmlstring);
$nums = $tree->xpath('/tree/item/object/num');
// Array functions to sum the numbers
$sum = array_sum(array_map('intval', $nums));
// or, Loop to sum the number
$sum = 0;
foreach ($nums as $num) {
$sum += $num;
}