- <?PHP
- /***
- dict 表
- id word mean
- 1 score 分数
- 2 title 标题
- ...
- ...
- ...
- 13121 zlib zlib库
- <?xml ..?>
- <dict>
- <word id="w1">
- <name>score</name>
- <mean>分数</mean>
- </word>
- <word id="w2">
- <name>score</name>
- <mean>分数</mean>
- </word>
- ...
- ....
- <word id="w13211">
- <name>score</name>
- <mean>分数</mean>
- </word>
- </dict>
- 利用XML做小型数据库,做一个在线词典查询
- 1:把数据库的单词导入到XML文件
- 2:做一个表单用来发送待查询单词
- 3:做一个查询页面,解析XML,查询该单词
- ***/
- $xml = new DOMDocument('1.0','utf-8');
- $xml->load('./dict.xml');
- $dict = $xml->getElementsByTagName('dict')->item(0);
- $conn = MysqL_connect('localhost','root','111111');
- MysqL_query('use test',$conn);
- $rs = MysqL_query('select * from cetsix');
- while($row = MysqL_fetch_assoc($rs)) {
- // 每一行数据,只要写入到XML的节点中,就可以了.
- $lx = $xml->createElement('lx');
- $lx->appendChild($xml->createCDATASection($row['lx']));
- $mean = $xml->createElement('mean');
- $mean->appendChild($xml->createCDATASection($row['meaning']));
- $name = $xml->createElement('name');
- $name->appendChild($xml->createtextNode($row['word']));
- $word = $xml->createElement('word');
- $word->appendChild($name);
- $word->appendChild($mean);
- $word->appendChild($lx);
- $dict->appendChild($word);
- }
- $xml->save('./dict.xml');
- echo 'OK';
进行查询:
- <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
- <head>
- <title>新建网页</title>
- <Meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- </head>
- <body>
- <h2>XML做小型数据库,完成在线词典</h2>
- <form action="query.PHP">
- <p>
- 单词:<input type="text" name="word" />
- <p>
- <p>
- <input type="submit" value="查询" />
- </p>
- </form>
- <div id="abc">
- 分析html,干吗非得用正则,DOM解析不行吗?
- </div>
- <div><p><span>aaaa</span><span>bbbbspan</span></p></div>
- </body>
- </html>
- <?PHP
- // 接收单词并解析XML查询相应的单词
- $word = isset($_GET['word'])?trim($_GET['word']):'';
- if(empty($word)) {
- exit('你想查啥?');
- }
- // 解析XML并查询
- $xml = new DOMDocument('1.0','utf-8');
- $xml->load('./dict.xml');
- $namelist = $xml->getElementsByTagName('name');
- $isfind = false;
- foreach($namelist as $v) {
- if($v->nodeValue == $word) {
- //print_r($v);
- echo $word,'<br />';
- echo '意思:',$v->nextSibling->nodeValue,'<br />';
- echo '例句:',$v->nextSibling->nextSibling->nodeValue,'<br />';
- $isfind = true;
- break;
- }
- }
- if(!$isfind) {
- echo 'sorry';
- }