zoukankan      html  css  js  c++  java
  • XML电子词典案例

    今天我给大家分享一个XML的实际应用,利用XML作为小型数据库存储英文单词信息,然后通过网页搜索单词,然后显示该单词的意思和例句等,我会使用Dom方式和Xpath方式来查询XML文件中的信息。

    dict.xml部分内容:

    这里写图片描述

    查询页面代码:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>电子词典</title>
        <link rel="stylesheet" href="">
    </head>
    <body>
        <h1>电子词典页面</h1>
        <form action="query.php">
            单词:<input type="text" name="word"/><br/>
            <input type="submit" value="查询" />
        </form>
    </body>
    </html>
    

    查询页面:

    这里写图片描述

    1、使用Dom方式查询
    代码:

    <?php
    /**
     * 电子词典
     * @author webbc
     */
    header('Content-type:text/html;charset=utf-8');
    $word = $_GET['word']?trim($_GET['word']):'';
    if(empty($word)){
        echo "查啥啊?";
        exit;
    }
    $isfind = false;
    //1、dom方式进行查询
     $dom = new DOMDocument('1.0','utf-8');
     $dom->load('./dict.xml');
     $nameList = $dom->getElementsByTagName('name');
     foreach($nameList as $v){
        if($v->nodeValue == $word){
            echo $word.'<br/>';
            echo '意思:'.$v->nextSibling->nodeValue.'<br/>';
            echo '例句:'.$v->nextSibling->nextSibling->nodeValue.'<br/>';
            $isfind = true;
        }
     }
     if(!$isfind){
        echo '没有找到!';
     }
    
    ?>

    2、使用Xpath方式查询

    代码:

    <?php
    /**
     * 电子词典
     * @author webbc
     */
    header('Content-type:text/html;charset=utf-8');
    $word = $_GET['word']?trim($_GET['word']):'';
    if(empty($word)){
        echo "查啥啊?";
        exit;
    }
    $isfind = false;
    //2、xpath方式进行查询
    $dom = new DOMDocument('1.0','utf-8');
    $dom->load('./dict.xml');
    $xpath = new DOMXPath($dom);
    $sql = '/dict/word[name="'.$word.'"]';
    $wordList = $xpath->query($sql);
    if($wordList->length === 0){
        echo "没有找到!";
        exit;
    }
    echo '单词:'.$wordList->item(0)->firstChild->nodeValue."<br/>";
    echo '意思:'.$wordList->item(0)->firstChild->nextSibling->nodeValue.'<br/>';
    echo '例句:'.$wordList->item(0)->firstChild->nextSibling->nextSibling->nodeValue;
    
    ?>

    查询结果:
    这里写图片描述

    注意:如果使用dom方式查询会比使用xpath方式慢很多,希望大家都使用xpath方式!

    dict.xml附件下载

  • 相关阅读:
    WEB存储
    2D变形
    HTML5音频与视频
    HTML5 canvas元素
    HTML5表单
    Can't finish GitHub sharing process Successfully created project 'springcloud-parent' on GitHub,
    Intellij idea上传项目到github
    Git for Windows安装和基本设置
    Eclipse注释快捷键、如何生成API以及可能遇到的问题解决
    mysql忘记密码
  • 原文地址:https://www.cnblogs.com/cnsec/p/13407066.html
Copyright © 2011-2022 走看看