XML について質問したいです
これは IP セキュリティ ポリシーの XML であり、各ユーザーは IP が の内容に含まれている場合にのみログインできることを意味します。変更および削除する方法を知りたいです。ユーザーの IP リストを使用します。DOMDOCUMENT();
<ユーザー名名="admin ">
192.168.1.1
192.168.1.2 //例として、admin を変更または削除するとします。 ip2、その他は変更されません
192.168.1.3 //ノード名が同じなので、ここに ID を追加する必要があります
1.4
192.168.1.5
192.168 .1.11
192.168.1.12
192.168.1.13
192.168.1.14 iplist>
192.168.1.15
192.168.1.21< /iplist> < ;iplist>192.168.1.25
------解決策--- --------------------
悲劇、悲劇。 domDocument は非常に標準的な DOM モデルです。php マニュアルに詳細なメソッドと例が記載されています。
------解決策---------
PHP コード
<ユーザー>
<ユーザー名 name="admin">
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
ユーザー名>
<ユーザー名 name="ユーザー">
192.168.1.11
192.168.1.12
192.168.1.13
192.168.1.14
192.168.1.15
ユーザー名>
<ユーザー名 name="user2">
192.168.1.21
192.168.1.22
192.168.1.23
192.168.1.24
192.168.1.25
ユーザー名>
ユーザー>
EOF;
$dom = 新しい DOMDocument();
$ret = $dom->loadXML($xml, LIBXML_NOBLANKS);
$xpath = 新しい 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 コード
$s =loadXML($s);
$xpath = 新しい 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();
<div class="clear"></div>