<?xml version="1.0" encoding="utf-8" ?>
<AllData>
<xueshengmen>
<xuesheng>
<name>张三</name>
<yuwen>80</yuwen>
<shuxue>90</shuxue>
<yingyu>70</yingyu>
</xuesheng>
<xuesheng>
<name>李四</name>
<yuwen>60</yuwen>
<shuxue>90</shuxue>
<yingyu>75</yingyu>
</xuesheng>
</xueshengmen>
</AllData>
[/code]
瑞在有一个XML文件xueshengshuju上面是部分数据
现在需要在每个xuesheng的节点里面添加一个zongfen的属性并且它的值等于yuwen+shuxue+yingyu的值
如下面的结果<?xml version="1.0" encoding="utf-8" ?>
<AllData>
<xueshengmen>
<xuesheng>
<name>张三</name>
<yuwen>80</yuwen>
<shuxue>90</shuxue>
<yingyu>70</yingyu>
<zongfen>240</zongfen>
</xuesheng>
<xuesheng>
<name>李四</name>
<yuwen>60</yuwen>
<shuxue>90</shuxue>
<yingyu>75</yingyu>
<zongfen>2225</zongfen>
</xuesheng>
</xueshengmen>
</AllData>
[/code]求完整的代码,谢谢各位了!
<?xml version="1.0" encoding="utf-8" ?>
<AllData>
<xueshengmen>
<xuesheng>
<name>张三</name>
<yuwen>80</yuwen>
<shuxue>90</shuxue>
<yingyu>70</yingyu>
</xuesheng>
<xuesheng>
<name>李四</name>
<yuwen>60</yuwen>
<shuxue>90</shuxue>
<yingyu>75</yingyu>
</xuesheng>
</xueshengmen>
</AllData>
XML;$doc=new DomDocument('1.0','utf-8');@$doc->loadXML($xml);
$xpath = new DOMXpath($doc);
$xuesheng_nodes = $xpath -> query( "//xuesheng" );foreach($xuesheng_nodes as $xuesheng) {
$total = 0;
// 计算总成绩
foreach(array('yuwen', 'shuxue', 'yingyu') as $node) {
$nodes = $xpath -> query( "//$node", $xuesheng);
$total += (int)$nodes->item(0)->nodeValue;
}
// 添加成绩
$zongfen_node = $doc->createElement('zongfen', $total);
$xuesheng->appendChild($zongfen_node);
}
echo $doc->saveXML();