一、加载xml,获得操作对象
<?php
$xml = simplexml_load_string(xml字符串); //加载一个xml格式的字符串到内存中
$xml = simplexml_load_file(xml文件路径, 'SimpleXMLElement', LIBXML_NOCDATA); //加载文件
二、新增节点和属性
<?php
//增加game节点
$game = $xml->addChild('game');
//在game节点下增加name节点
$game->addChild('name', '真龙主宰');
//在game节点下增加company节点
$game->addChild('company', '贪玩蓝月');
//在game节点下增加desc节点
$game->addChild('desc', '第一款全名手游');
//给game节点增加id属性
$game->addAttribute('id', 'zlzz');
三、遍历和修改节点
<?php
//将hot节点中大于3w的数据改为55555
foreach ($xml->children() as $game) {
if($game->hot > 30000) {
$game->hot = 55555;
}
}
四、删除节点
<?php
//删除所有子节点中的hot节点
foreach ($xml->children() as $game) {
unset($game->hot);
}
五、遍历节点属性
<?php
foreach ($xml->children() as $game) {
var_dump($game['id']);
}
foreach ($xml->children() as $game) {
foreach ($game->attributes() as $k => $v) {
var_dump("属性名{$k}-属性值{$v}");
}
}
六、xpath路径查询实例
<?php
var_dump($xml->xpath("//game[1]/name")); //获取第一个game节点下的name
var_dump($xml->xpath("/games/game[name='真龙主宰']")); //获取拥有特定属性的game节点
var_dump($xml->xpath("/games/game[@cate]")); //获取有cate属性的game节点
七、保存
<?php
$xml->asXML('./newGames.xml');