Heim > Backend-Entwicklung > PHP-Tutorial > php DOMElement操作xml文档的例子

php DOMElement操作xml文档的例子

WBOY
Freigeben: 2016-07-25 09:00:04
Original
878 Leute haben es durchsucht
  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 查找节点

  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. ?>
复制代码


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage