PHP 操作xml编程的例子,对词库的练习,学习对xml文件的增、删、改、查的操作。
1、wordView.php
2、wordProcess.php
<?php
//接收类型 看看用户做什么(查询、添加....)
$type=$_REQUEST['type'];
//echo $type;
//exit();
//创建xml文档对象
$doc=new DOMDocument();
$doc->load("words.xml");
//进行判断
if($type=="query"){
//获取用户输入的值
$enword=$_REQUEST['enword'];
//判断是否进入查询
$isEnter=false;
//获取所有单词节点
$words=$doc->getElementsByTagName("word");
//遍历单词节点
for($i=0;$i<$words->length;$i++){
$word_node=$words->item($i);
//获取不同的语种
$en_word=getNodeVal($word_node,"en");
$zh_word=getNodeVal($word_node,"zh");
//查询
if($enword==$en_word){
$isEnter=true;
echo $enword."的中文意思是:".getNodeVal($word_node,"zh");
echo "<br/><a href='wordView.php'>返回继续查询</a>";
}else if($enword==$zh_word){
$isEnter=true;
echo $enword."的英文意思是:".getNodeVal($word_node,"en");
echo "<br/><a href='wordView.php'>返回继续查询</a>";
}
}
if(!$isEnter){
echo "无法查询";
echo "<br/><a href='wordView.php'>返回继续查询</a>";
}
}else if($type=="添加"){
//接收
$enword=$_REQUEST['enword'];
$zhword=$_REQUEST['zhword'];
if(!empty($enword)&&!empty($zhword)){
//获取根节点
$root=$doc->getElementsByTagName("words")->item(0);
$word=$doc->createElement("word");
$en=$doc->createElement("en",$enword);
$zh=$doc->createElement("zh",$zhword);
//进行挂载
$root->appendChild($word);
$word->appendChild($en);
$word->appendChild($zh);
//保存xml文件
$doc->save("words.xml");
echo "添加成功<br/><a href='wordView.php'>返回继续操作</a>";
}else{
echo "请输入单词";
echo "<br/><a href='wordView.php'>返回继续操作</a>";
exit();
}
}else if($type=="delete"){
$word=$_REQUEST['word'];
//获取所有单词节点
$words=$doc->getElementsByTagName("word");
$isEnter=false;
//遍历单词节点
for($i=0;$i<$words->length;$i++){
$word_node=$words->item($i);
//获取不同的语种
$en_word=getNodeVal($word_node,"en");
$zh_word=getNodeVal($word_node,"zh");
//查询
if($word==$en_word || $word==$zh_word){
$isEnter=true;
//找到父节点
$word_node->parentNode->removeChild($word_node);
$doc->save("words.xml");
echo "删除成功<br/><a href='wordView.php'>返回继续操作</a>";
}
}
if(!$isEnter){
echo "操作失败";
echo "<br/><a href='wordView.php'>返回继续操作</a>";
}
}else if($type="修改"){
//接收
$enword=$_REQUEST['enword'];
$zhword=$_REQUEST['zhword'];
if(!empty($enword)&&!empty($zhword)){
//获取所有单词节点
$words=$doc->getElementsByTagName("word");
//遍历单词节点
$isEnter=false;
for($i=0;$i<$words->length;$i++){
$word_node=$words->item($i);
//获取不同的语种
$en_word=getNodeVal($word_node,"en");
$zh_word=getNodeVal($word_node,"zh");
//查询
if($enword==$en_word && $zhword!=$zh_word){
//修改中文
$isEnter=true;
//获取zh节点
$zh=$word_node->getElementsByTagName("zh")->item(0);
$zh->nodeValue=$zhword;
$doc->save("words.xml");
echo "修改成功";
echo "<br/><a href='wordView.php'>返回继续操作</a>";
}else if($enword!=$en_word && $zhword==$zh_word){
//修改因为
$isEnter=true;
$en=$word_node->getElementsByTagName("en")->item(0);
$en->nodeValue=$enword;
$doc->save("words.xml");
echo "修改成功";
echo "<br/><a href='wordView.php'>返回继续操作</a>";
}
}
if(!$isEnter){
echo "没有做任何修改";
echo "<br/><a href='wordView.php'>返回继续操作</a>";
}
}else{
echo "请输入需要修改的单词";
echo "<br/><a href='wordView.php'>返回继续操作</a>";
exit();
}
}
//获取节点的文本值
function getNodeVal(&$MyNode,$tagName){
return $MyNode->getElementsByTagName($tagName)->item(0)->nodeValue;
}
?>
3、words.xml