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附件下载

  • 相关阅读:
    Recommended Books for Algo Trading in 2020
    Market Making is simpler than you think!
    Top Crypto Market Makers of 2020
    Top Crypto Market Makers, Rated and Reviewed
    爬取伯乐在线文章(五)itemloader
    爬取伯乐在线文章(四)将爬取结果保存到MySQL
    爬取伯乐在线文章(三)爬取所有页面的文章
    爬取伯乐在线文章(二)通过xpath提取源文件中需要的内容
    爬取伯乐在线文章(一)
    爬虫去重策略
  • 原文地址:https://www.cnblogs.com/cnsec/p/13407066.html
Copyright © 2011-2022 走看看