PHP操作xml详解

一、加载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');

猜你喜欢

转载自blog.csdn.net/weixin_41635750/article/details/108285535