前回の記事では、PHP で XML ドキュメントを作成するプロセスを記録しました。この記事では、データをさらに処理するために、受信した XML 文字列内のデータと属性値を解析する方法を記録します。
XMLファイル
1.
2.
3.
4.
5.
6.
7. <時 pid="6" pmid="3">時>
8. <時 pid="6" pmid="3">時>
9. ワーカー>
10. 時間>
11.
12.
13. <時 pid="9" pmid="4">時>
14. <時 pid="9" pmid="4">時間>
15. <時 pid="9" pmid="4">時>
16. <時 pid="9" pmid="4">時間>
17. <時 pid="9" pmid="4">時>
18. <時 pid="9" pmid="4">時間>
19. ワーカー>
20. 時間>
21.
22.
23. >時間>
24. >時間>
25. >時間>
26. ワーカー>
27.
28. >時間>
29. >時間>
30. <時間 pid="1" pmid="1">時間>
31. >時間>
32. >時間>
33. ワーカー>
34.
35. >時間>
36. >時間>
37. >時間>
38. >時間>
39. >時間>
40. >時間>
41. >時間>
42. <時 pid="3" pmid="3">時>
43. ワーカー>
44.
45.
46.
47.
1. $xml = new DOMDocument();
2.
3. //$xml->load("timeline.xml");
4. $xmlstring = '
8. $d_array = array();
9. foreach ($timedom を $times){
10. $time_att_value = $times->getAttribute("value");
11. echo $time_att_value."
";
12. $d_worker = $times->getElementsByTagName("worker");
13. foreach ($d_worker として $d_work){
14. $worker_att_id = $d_work->getAttribute("id");
15. $worker_att_name = $d_work->getAttribute("name");
16. echo $worker_att_name."
";
17. //echo $worker_att_id."
";
18. $d_hours = $d_work->getElementsByTagName("hour");
19. foreach ($d_hours を $d_hour){
20. $hour_att_pid = $d_hour->getAttribute("pid");
21. $hour_att_pmid = $d_hour->getAttribute("pmid");
22.
23. エコー数($d_hour);
24. echo $d_hour->nodeValue."
";
25. }
26. }
27. }
結果が xml 文書である場合、使用します
$xml->load("timeline.xml");
結果が解析xml文字列用
$xml->loadXML($xmlstring);
-------------------------------------------------- ----
获得节点のプロパティ:getAttribute('id');
获得节点值:nodeValue;
本文出典 “Bob” 博客