好吧,让我说我有一个xml看起来像这个例子,
<?xml version="1.0" encoding="UTF-8"?>
<stats id="865" name="blaah">
<example name="blaahblaah">
<example1>
<x ppoints="500"/>
</example1>
<example2>
<x ppoints ="150"/>
<x points ="500"/>
<x ppoints ="140"/>
<x points="200"/>
</example2>
</example>
</stats>
我在这里要做的是获取所有的ppoints并将它们分成一个数字和所有的点并将它们四舍五入为一个数字, 像这样
统计数据:“四舍五入”p&amp; “四舍五入”p
帮助任何人?非常感谢
答案 0 :(得分:2)
在这种情况下,据我所知,文档的结构可以包含多个“示例”节点,我认为最好的方法是加载XML文档并使用XPath表达式来获取{{1}的所有节点}属性和ppoints
属性。
使用XPath有两种可能的解决方案。一个使用SimpleXMLElement::xpath来检索所有必需的节点并手动求和。另一个使用DOMXPath::evaluate,它允许评估任何类型的XPath表达式,并使用XPath对值进行求和。后一种解决方案更简单。
DOMXPath ::评价
points
的SimpleXMLElement ::的xpath
<?php
$doc = new DOMDocument;
$doc->load('file.xml');
$xpath = new DOMXPath($doc);
$sum_ppoints = $xpath->evaluate('sum(//x/@ppoints)');
$sum_points = $xpath->evaluate('sum(//x/@points)');
print "Ppoints: $sum_ppoints; Points: $sum_points\n";
?>