XMLドキュメントがあります:
<items>
<item>
<id>1</id>
<title>Title ABC Defg</title>
<author>Author Name</author>
<description>Description text </description>
</item>
...
</items>
そして、私は検索を行い、タイトル、著者、説明がフレーズを含んでいるかどうかを確認したいと思います
一度にそれを行う方法がわからず、関連性によって注文します。しかし、「単語」や「単語」を検索するほど重要ではありません。私は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を検索すると単語が見つからず、単語と単語の両方を取得したいということです。
著者のタイトルと説明を「接続」して検索し、なんとかして注文することもできれば、私は本当に感謝します。
編集:
私はなんとかすべてのタグを検索することができました(指定されているだけでなく、私にとっては大丈夫です)
だから私はこのようなコードを持っています:
$query=strtolower(rawurldecode($_GET['s']));
$nodes= $xml->xpath("//item[contains(translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),'$query')]") // . - all i suppose
$queryの一種の検証も使用します