我是新手我试图删除我输入的值的行,但它会一直删除第一行并忽略我输入的内容。提前感谢您的帮助,我们将非常感激。
Try.xml
<?xml version="1.0"?>
<Person>
<Student>
<id>003</id>
<name>k</name>
<age>18</age>
</Student>
<Student>
<id>004</id>
<name>q</name>
<age>19</age>
</Student>
<Student>
<id>005</id>
<name>a</name>
<age>20</age>
</Student>
删除表单代码:
<head>
<title>Delete Record</title>
</head>
<body>
<form method="post" action="delete.php">
ID to delete:<input name="id" type="text"/><br/>
<input type="Submit" value= "Delete Record">
</form>
</body>
</html>
和delete.php
<?php
$xmldoc = new DOMDocument();
$xmldoc->load('try.xml');
$root = $xmldoc->documentElement;
$items = $root->getElementsByTagName('Student')->item(0);
$old=$root->removeChild($items);
$test=$xmldoc->save('try.xml');
if($test)
echo "Successfully deleted";
?>
<a href="index.php">Back</a>
答案 0 :(得分:0)
您已在代码item(0) and removeChild($items)
中指明触发它的内容始终是第一个值。
答案 1 :(得分:0)
您最常删除父元素中的子项。
$xmldoc = new DOMDocument();
$xmldoc->load('try.xml');
$root= $xmldoc->documentElement;
$data = $root->getElementsByTagName('Student');
$id = (string)@$_POST['id'];
if($data) {
$domElemsToRemove = [];
foreach ( $data as $domElement ) {
if($domElement->childNodes->item(1)->textContent == $id) {
$domElemsToRemove[] = $domElement;
}
}
foreach( $domElemsToRemove as $domElement ){
$domElement->parentNode->removeChild($domElement);
}
$xmldoc->save('try.xml');
}
ID: 更新
{{1}}