Maison > développement back-end > tutoriel php > php DOMElement操作xml文档的例子

php DOMElement操作xml文档的例子

WBOY
Libérer: 2016-07-25 09:00:04
original
879 Les gens l'ont consulté
  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. ?>
复制代码


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal