首頁 > 後端開發 > php教程 > php DOMElement操作xml文件的例子

php DOMElement操作xml文件的例子

WBOY
發布: 2016-07-25 09:00:04
原創
901 人瀏覽過
  1. /*

  2. 孫悟空姓名>
  3. 孫行者姓名>
  4. 123 年齡>
  5. 介紹>
  6. 學生>
  7. 白骨精姓名>
  8. 140年齡>
  9. 介紹內容介紹>
  10. 學生>
  11. 班級>
  12. */
複製程式碼

2、php程式碼

  1. /**

  2. *DOMElement XML
  3. *http://bbs.it-home.org
  4. */
  5. $xmldoc = new DOMDocument('1.0' , 'UTF-8');
  6. $xmldoc->load('datas.xml');
  7. $itemsNodeList = $xmldoc->getElementsbyTagName('學生');

  8. $itemElement = $itemsNodeList->item(0);//得到第一個完整的學生資訊節點
  9. $itemChildsNodeList = $itemElement->getElementsbyTagName('名字');//得到子節點“名字”,也許有多個名字
  10. $itemChildNode = $itemChildsNodeList->item(0);//得到第一個名字節點
  11. echo $itemChildNode->nodeValue;//輸出節點值
  12. //封裝成函數

  13. $nodeArr = array('名字', '年齡', '介紹');
  14. function getNodeVal($xmldoc, $itemsName, $nodeArr){
  15. $items = $xmldoc->getElementsByTagName($itemsName);
  16. for($i=0; $i length; $i++){
  17. $item = $items->item($i);
  18. foreach($nodeArr as $node){
  19. $data[$i][] = $item->getElementsByTagName($node)->item(0)->nodeValue;
  20. }
  21. }
  22. return $data;
  23. }
  24. $data = getNodeVal($xmldoc, '學生', $nodeArr);

  25. print_r($data);
  26. //新增節點

  27. $xmldoc = new DOMDocument('1.0', 'UTF-8');
  28. $xmldoc->load('datas.xml');
  29. $items = $xmldoc->getElementsByTagName('班級')->item(0);//根節點
  30. $student = $xmldoc->createElement('學生');//建立新的學生節點
  31. $stu_name = $xmldoc->createElement('名字','張三');
  32. $stu_age = $xmldoc->createElement('年齡','15');
  33. $stu_intro = $xmldoc ->createElement('介紹','動手能力強且成績穩定');
  34. $items->appendChild($student);
  35. $student->appendChild($stu_name);
  36. $student- >appendChild($stu_age);
  37. $student->appendChild($stu_intro);
  38. $bytes = $xmldoc->save('datas.xml');
  39. echo ($bytes)? "寫入了: $bytes 位元組" : '儲存失敗';
  40. //刪除節點

  41. $xmldoc = new DOMDocument('1.0', 'UTF-8');
  42. $xmldoc->load('datas.xml');
  43. $student = $xmldoc->getElementsByTagName('學生')->item(2);//直接找到要刪除的節點
  44. $student ->parentNode->removeChild($student);//父節點的刪除方法
  45. $xmldoc->save('datas.xml');
  46. //修改節點值

  47. $student = $xmldoc->getElementsByTagName('學生')->item(2);
  48. $student->getElementsByTagName('年齡')->item(0)->nodeValue += 10;
  49. $student->setAttribute('id', '110');
  50. $xmldoc->save('datas.xml');
  51. //應用Xpath 找出節點 p>

  52. $xml = new DOMDocument('1.0', 'UTF-8');

  53. $xml->load('dat.xml');
  54. $xpath = new DOMXPath( $xml);
  55. $nodeList = $xpath->query('/aaa/bbb/ddd/fff');
  56. echo $nodeList->item(0)->nodeValue;
  57. //SimpleXML 類別操作xml

  58. /*
  59. 1001
  60. 200元
  61. 大明
  62. 天龍八部
  63. 1002
  64. 321元
  65. 張三
  66. 笑傲江湖
  67. 1004
  68. 182元
  69. 李四
  70. 讀者
  71. * /
  72. $xml = simplexml_load_file('books.xml');
  73. $books = $xml->book;
  74. echo $books[1]->title . $books[1]['house' ];//直接指向第二本
  75. foreach($xml as $item){
  76. echo $item->title,' ',$item['house'],'
    ';
  77. }
  78. ?>
複製程式碼


來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板