版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41179401/article/details/84799978
使用xml制作在线字典查询
示例图:
本例中是先将数据库的取出的数据转化为xml的数据,如果有做好的xml可直接使用
sql:
a.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<dict></dict>
a.php:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>xml制作在线词典</title>
</head>
<body>
<p>xml制作在线词典</p>
<form method="post">
<input type="text" name="word" placeholder="请输入要查询的单词">
<input type="submit" name="send" value="查询">
</form>
</body>
</html>
<?php
/*
转化为这种xml格式
<?xml version="1.0" encoding="UTF-8" ?>
<dict>
<word id='1'>
<name></name>
<mean>意思</mean>
<ex>例句</ex>
</word>
</dict>
*/
$xml = new DOMDocument();
$xml->load('a.xml');
// 链接数据库
mysql_connect('127.0.0.1','root','12345678');
mysql_query('set names utf-8');
mysql_select_db('test');
$sql = "SELECT * FROM english";
$row = mysql_query($sql);
while ($res = mysql_fetch_assoc($row)) {
// 处理例句
$exinfo = $xml->createTextNode($res['ex']);
$ex = $xml->createElement('ex');
$ex->appendChild($exinfo);
//处理单词的翻译
$meaninfo = $xml->createCDATASection($res['mean']);
$mean = $xml->createElement('mean');
$mean->appendChild($meaninfo);
//处理单词
$nameinfo = $xml->createTextNode($res['name']);
$name = $xml->createElement('name');
$name->appendChild($nameinfo);
//处理单词的id
$id = $xml->createAttribute('id');
$id->value = $res['id'];
$word = $xml->createElement('word');
//添加id,单词,意思和例句
$word->appendChild($id);
$word->appendChild($name);
$word->appendChild($mean);
$word->appendChild($ex);
//添加到整个xml里dict下
$xml->getElementsByTagName('dict')->item(0)->appendChild($word);
}
$xml->save('as.xml'); //保存到as.xml输出
// xml在线查询
if(isset($_POST['send'])&&isset($_POST['word'])){
$_xml = new DOMDocument();
$_xml->load('as.xml');
$_namelist = $_xml->getElementsByTagName('name');
foreach ($_namelist as $k => $v) {
if($v->nodeValue==$_POST['word']){
echo '单词:'.$_POST['word'].'<br/>';
echo '翻译:'.$v->nextSibling->nodeValue.'<br/>';
echo '例句:'.$v->nextSibling->nextSibling->nodeValue.'<br/>';
break;
}
}
}
?>
ad.xml:保存的从数据库取出的所有数据的xml