我从我的XML中过滤了整个标题。
if(isset($_POST["submit"]))
{
$state=$_POST["state"];
$title=$_POST["title"];
$result = simplexml_load_file('sample.xml');
$record = $result-> xpath('(/jobs/job[positiontitle="'.$title.'"])|(/jobs/job[state="'.$state.'"])');
foreach ($record as $row):
$jobid=$row->jobid;
?>
<li class="result">
<a href="<?php print base_path(); ?>job/?<?php print $jobid;?>">
<h3 class="title"><?php $title=$row->positiontitle;
echo $title; ?></h3>
</li>
<?php
endforeach;
?>
这是我的xml
<jobs>
<job>
<jobid>
<![CDATA[ 02304485 ]]>
</jobid>
<positiontitle>
<![CDATA[ Maintenance Manager ]]>
</positiontitle>
</job>
</jobs>
如果我输入标题&#34; maintenance&#34;,标题应该被过滤。在sql中我们可以使用like操作进行过滤。这应该做什么?
答案 0 :(得分:0)
我认为如果在xpath表达式中使用normalize-space来去除前导和尾随空格,这将有所帮助。
您可以更改此行:
$record = $result-> xpath('(/jobs/job[positiontitle="'.$title.'"])|(/jobs/job[state="'.$state.'"])');
到这一行:
$record = $result->xpath('/jobs/job[normalize-space(positiontitle)="' . $title . '"]|/jobs/job[normalize-space(jobid)="' . $state . '"]');