我有一个 XML 文档:
<items>
<item>
<id>1</id>
<title>Title ABC Defg</title>
<author>Author Name</author>
<description>Description text </description>
</item>
...
</items>
我想做一个搜索并检查标题、作者、描述是否包含短语
我不知道如何立即执行并按相关性排序。但它并不像搜索“Word”和“word”那么重要。我使用了php代码:
<?php
$xml=simplexml_load_file(file.xml);
$query=$_GET['query'];
$nodes= $xml->xpath("//item[contains(title,'$query')]");
$count = count($nodes);
for ($i=1;$i<=$count;$i++){
$nodes= $xml->xpath("//item[contains(title,'$query')][$i]");
foreach($nodes as $node) {
$title = $node->title;
$desc= $node->description;
$auth= $node->auth;
$id= $node->id;
echo "id: $id<br />title: $title<br />author: $auth<br />desc: $desc<p> </p>
?>
我知道它只搜索标题,但问题是当我搜索 Word 时它找不到单词,我想同时获得:单词和 Word
如果您还可以帮助我在作者标题和描述中“连接”搜索并以某种方式订购它,我真的会很高兴。
编辑:
我已经设法搜索所有标签(不仅指定,而且对我来说还可以)
所以我有这样的代码:
$query=strtolower(rawurldecode($_GET['s']));
$nodes= $xml->xpath("//item[contains(translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),'$query')]") // . - all i suppose
我也使用 $query 的一种验证