搜索xml文件并使用php

时间:2016-05-28 09:52:08

标签: php html xml

Hello每个人都有一个xml文件,我在html表中使用simplexml库显示。我想通过使用元素值在文件中搜索记录。 这里是xml文件的内容。

<?xml version="1.0" encoding="ISO-8859-1"?>
<StudentsList>
<Student>
<student_id email="test@yahoo.com">18700</student_id>
<firstName>Jhon</firstName>
<lastName>Smith</lastName>
<address>Dragon Vally china</address>
</Student>
<Student>
<student_id email="LeeSin@gmail.com">18701</student_id>
<firstName>Lee</firstName>
<lastName>Sin</lastName>
<address>League Of Legend UK</address>
</Student>
</StuedntsList>

我现在正在使用php我能够找到指定的学生搜索名字或姓氏的值。但我不知道如何使用所有记录重置当前的html表并填充搜索值的结果。 我正在使用以下php代码进行搜索。

$firstName = "Lee";
$searched_stu_fName = $xml->xpath("//StudentsList/Student/firstName[contains(text(),'$firstName')]/parent::*");
if(count($searched_stu_fName) > 0) {
    print_r ($searched_stu_fName);
    echo "found Student";

}

print语句给出以下结果:

Array ( [0] => SimpleXMLElement Object ( [student_id] => 18701 [firstName] => Lee [lastName] => Sin [address] => League Of Legend UK ) ) 

现在我想立即重新加载带有此记录的html表我正在让所有学生都在xml文件中显示。

我只是需要一些想法或指导,感谢您提前提出的任何建议,并抱歉我的英语不好。 在PHP我正在使用这些代码行加载文件

$file = file_get_contents('student.xml');

$xml = simplexml_load_string($file);

在html中,我在表格中显示

<table>
<?php foreach($xml->Student as $student) :?>
    <tr>
     <td><?php echo $student->student_id.'('.$student->student_id['email'].')'; ?></td>
     <td><?php echo $student->firstName; ?></td>
     <td><?php echo $student->lastName; ?></td>
     <td><?php echo $student->address; ?></td>
    </tr>
<?php endforeach; ?>
</table>   

1 个答案:

答案 0 :(得分:0)

据我了解,当您打印所有学生时,它是一个物品列表,其中一个物业是学生。当你只想用过滤器打印一个学生时,它就是一系列学生对象。

这就是循环看起来像这样的原因:

{{1}}