请问一个XML有关问题

php中文网
发布: 2016-06-13 10:24:59
原创
820人浏览过

请教一个XML问题
这是一个IP安全策略的 XML ,意思是每个用户只能在 ip为 里面内容时才能登陆, 我想知道怎么修改 和删除某个用户的 ip列表, 我用的是 DOMDOCUMENT();




192.168.1.1
192.168.1.2 //举个例子 假设,我想修改或删除admin ip2的,其他的保持不变
192.168.1.3 //因为节点名都相同, 我这里是不是要给 加id
192.168.1.4
192.168.1.5


192.168.1.11
192.168.1.12
192.168.1.13
192.168.1.14
192.168.1.15


192.168.1.21
192.168.1.22
192.168.1.23
192.168.1.24
192.168.1.25



------解决方案--------------------
悲剧啊悲剧啊。 domDocument是非常标准的DOM模型,php manual详细的方法和例子,为什么偷懒?
------解决方案--------------------

PHP code
<?php $xml = <<<EOF<?xml version="1.0" encoding="utf-8"?><user><username name="admin"><iplist>192.168.1.1</iplist><iplist>192.168.1.2</iplist><iplist>192.168.1.3</iplist><iplist>192.168.1.4</iplist><iplist>192.168.1.5</iplist></username><username name="user"><iplist>192.168.1.11</iplist><iplist>192.168.1.12</iplist><iplist>192.168.1.13</iplist><iplist>192.168.1.14</iplist><iplist>192.168.1.15</iplist></username><username name="user2"><iplist>192.168.1.21</iplist><iplist>192.168.1.22</iplist><iplist>192.168.1.23</iplist><iplist>192.168.1.24</iplist><iplist>192.168.1.25</iplist></username></user>EOF;$dom = new DOMDocument();$ret = $dom-&gt;loadXML($xml, LIBXML_NOBLANKS);$xpath = new DOMXpath($dom);$node_list = $xpath-&gt;query('/user/username[@name="admin"]/iplist');for ($i = 0; $i != $node_list-&gt;length; ++ $i) {        echo $node_list-&gt;item($i)-&gt;nodeValue . PHP_EOL;}?&gt;<br><font color="#e78608">------解决方案--------------------</font><br>
登录后复制
PHP code
$s =<user><username name="admin"><iplist>192.168.1.1</iplist><iplist>192.168.1.2</iplist><iplist>192.168.1.3</iplist><iplist>192.168.1.4</iplist><iplist>192.168.1.5</iplist></username><username name="user"><iplist>192.168.1.11</iplist><iplist>192.168.1.12</iplist><iplist>192.168.1.13</iplist><iplist>192.168.1.14</iplist><iplist>192.168.1.15</iplist></username><username name="user2"><iplist>192.168.1.21</iplist><iplist>192.168.1.22</iplist><iplist>192.168.1.23</iplist><iplist>192.168.1.24</iplist><iplist>192.168.1.25</iplist></username></user>XML;$dom = new domDocument;$dom-&gt;loadXML($s);$xpath = new DOMXPath($dom);//使用xpath定位修改$p = $xpath-&gt;query("//username[@name='admin']/iplist[.='192.168.1.1']")-&gt;item(0);$p-&gt;nodeValue = 'abcd';//使用xpath定位删除$p = $xpath-&gt;query("//username[@name='admin']/iplist[.='192.168.1.2']")-&gt;item(0);$p-&gt;parentNode-&gt;removeChild($p);echo $dom-&gt;saveXML();<div class="clear"></div>
登录后复制

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号