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

原文地址:https://www.cnblogs.com/cnsec/p/13407066.html