请问一个XML有关问题
程序员文章站
2022-05-26 07:53:08
...
请教一个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详细的方法和例子,为什么偷懒?
------解决方案--------------------
这是一个IP安全策略的 XML ,意思是每个用户只能在 ip为
------解决方案--------------------
悲剧啊悲剧啊。 domDocument是非常标准的DOM模型,php manual详细的方法和例子,为什么偷懒?
------解决方案--------------------
- PHP code
EOF; $dom = new DOMDocument(); $ret = $dom->loadXML($xml, LIBXML_NOBLANKS); $xpath = new DOMXpath($dom); $node_list = $xpath->query('/user/username[@name="admin"]/iplist'); for ($i = 0; $i != $node_list->length; ++ $i) { echo $node_list->item($i)->nodeValue . PHP_EOL; } ?> 192.168.1.1 192.168.1.2 192.168.1.3 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
------解决方案--------------------
- PHP code
$s =XML; $dom = new domDocument; $dom->loadXML($s); $xpath = new DOMXPath($dom); //使用xpath定位修改 $p = $xpath->query("//username[@name='admin']/iplist[.='192.168.1.1']")->item(0); $p->nodeValue = 'abcd'; //使用xpath定位删除 $p = $xpath->query("//username[@name='admin']/iplist[.='192.168.1.2']")->item(0); $p->parentNode->removeChild($p); echo $dom->saveXML(); 192.168.1.1 192.168.1.2 192.168.1.3 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 相关文章
相关视频