zoukankan      html  css  js  c++  java
  • PHP 操作xml编程词库练习

    PHP 操作xml编程---词库练习:对xml的crud操作

    1、wordView.php

    <html>
    <head>
        <meta http-equiv="Content-type" content="text/html;charset=utf-8">
    </head>
    <body>
        <form action="wordProcess.php" method="post">
            <input type="text" name="enword">
            <input type="hidden" name="type" value="query">
            <input type="submit" value="查询">
        </form>
        <span>添加单词</span>
        <form action="wordProcess.php" method="post">
            英文:<input type="text" name="enword"><br>
            中文:<input type="text" name="zhword"><br>
            <!--<input type="hidden" name="type" value="insert">
            <input type="hidden" name="type" value="update"> -->
            <input type="submit" name="type" value="添加">
            <input type="submit" name="type" value="修改">
        </form>
        <form action="wordProcess.php" method="post">
            <input type="text" name="word">
            <input type="hidden" name="type" value="delete">
            <input type="submit" value="删除">
        </form>
    </body>
    </html>

    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

    <?xml version="1.0" encoding="utf-8"?>
    <words><word><en>boy</en><zh>男孩</zh></word><word><en>girl</en><zh>女孩</zh></word><word><en>fire</en><zh>火</zh></word><word><en>word</en><zh>词库</zh></word></words>
  • 相关阅读:
    java 数据结构(六):数组与集合
    java 数据结构(七):Collection接口
    java 数据结构(八):Iterator接口与foreach循环
    java 数据结构(九):Collection子接口:List接口
    java 数据结构(十):Collection子接口:Set接口
    java 数据结构(十一):Map接口
    java 数据结构(十二):Collections工具类的使用
    java 面向对象(三十二):泛型一 泛型的理解
    java 面向对象(三十三):泛型二 泛型在集合中的使用
    iOS下JS与OC互相调用(四)--JavaScriptCore
  • 原文地址:https://www.cnblogs.com/pwm5712/p/3095268.html
Copyright © 2011-2022 走看看