2016-05-28 9 views
1

こんにちは私はすべて、私はHTMLテーブルにsimplexmlライブラリを使って表示しているxmlファイルを持っています。私は要素の値を使用してレコードのファイルを検索したい。 ここにxmlファイルの内容。私はPHPを使用していますxmlファイルを検索し、HTMLテーブルにPHPの結果を入力してください

<?xml version="1.0" encoding="ISO-8859-1"?> 
<StudentsList> 
<Student> 
<student_id email="[email protected]">18700</student_id> 
<firstName>Jhon</firstName> 
<lastName>Smith</lastName> 
<address>Dragon Vally china</address> 
</Student> 
<Student> 
<student_id email="[email protected]">18701</student_id> 
<firstName>Lee</firstName> 
<lastName>Sin</lastName> 
<address>League Of Legend UK</address> 
</Student> 
</StuedntsList> 

は今、私はファーストネームまたは姓の検索値に指定された学生を見つけることができています。しかし、私はどのようにすべてのレコードで現在のHTMLテーブルをリセットし、検索された値の結果を記入する手がかりがありません。 次のPHPコードを使用して検索しています。

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

は、今私が唯一の今、私はそこに示すxmlファイル内のすべての学生を持っています。このレコードにHTMLテーブルをリロードしたい:

$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文は、次の結果を与えます。

私はちょっとしたアイデアやガイダンスが必要です。事前に何かアドバイスがありましたら、私の悪い英語を申し訳ありません。 PHPの 私はあなたがすべての生徒を印刷するとき、それはリストですが、私の知る限り理解し

表に
<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> 
+0

あなたはすべての学生を表示するコードを示すことができましたか? – user489872

+0

確かに1秒です。 –

答えて

0

を示していますコードのhtmlで

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

$xml = simplexml_load_string($file); 

のこれらの行を使用してファイルをロードしています1つの財産が学生であるオブジェクトのフィルタを使用して1人の生徒を印刷したい場合は、生徒オブジェクトの配列です。

ループは次のようになります理由ですそれ:

<table> 
<?php foreach($searched_stu_fName 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> 
+0

私はそれを得ましたが、私はすべてのレコードを表示しているテーブルを再描画またはリフレッシュします。 –

+0

ajaxまたはページリフレッシュ? – user489872

関連する問題