您的位置:首页 > 编程语言 > PHP开发

PHP XPath快速查找xml元素实例: 词典(xml) 查询词条

2018-01-21 17:07 639 查看
dict_select2.php:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$res = "";
if (isset($_POST['word'])) {
$word = trim($_POST['word']);
$dom = new DOMDocument('1.0','utf-8');
$dom->load('dict.xml');
$xpath = new DOMXPath($dom);
$query = "/cetsix/word[name='$word']/mean"; //利用XPath优化查询速度
$nodes = $xpath->query($query); //不需要foreach循环,查询速度快。
if ($nodes->length > 0) {
//找到
$res = $nodes->item(0)->nodeValue;
} else {
$res = "没有该词条";
}
/* 这种查询词条的方式很慢
$names = $dom->getElementsByTagName('name');
$means = $dom->getElementsByTagName('mean');
//循环查询
foreach ($names as $k => $name) {
if ($name->nodeValue == $word) { //这种查询方式很慢。
//找到,就把对应的mean保存起来,然后退出循环
$res = $means->item($k)->nodeValue;
break;
}else {
//赋值,提示信息
$res = "没有该词条";
}
}
*/
}
?>
<form action="" method="post">
<label for="">请输入要查询的单词:</label>
<input type="text" name="word" value="<?php echo isset($word)? $word:''?>">
<input type="submit" value="查询">
</form>
<p>
<?php echo $res;?>
</p>
</body>
</html>dict.xml:
<?xml version="1.0" encoding="utf-8"?>
<cetsix>
<word>
<name>you can you up</name>
<mean>你行你上</mean>
<lx>you can you up ,no can no bebe</lx>
</word>
<word>
<name>no zuo no die</name>
<mean>不作死就不会死</mean>
<lx>no zuo no die</lx>
</word>
</cetsix>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php dom xml xpath