• 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>
  • 相关阅读:
    汇编 if else
    汇编  cdecl 函数调用约定,stdcall 函数调用约定
    汇编 push ,pop指令
    汇编 EBP ,ESP 寄存器
    汇编 sub减法指令 比较指令CMP JZ条件跳转指令
    thrift使用案例
    基于hiredis,redis C客户端封装
    golang 3des/ecb/cbc/pkcs5 加解密
    ortp 发送RTP实例
    go:基于时间轮定时器方案
  • 原文地址:https://www.cnblogs.com/pwm5712/p/3095268.html
Copyright © 2020-2023  润新知