热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP操作XML的知识点记录DOMDocument

在php应用中PHP操作XML是常常要用到的,在php中操作xml文档有很多种方法,如DOMDocument就是一个对xml解析,读写,增加,删除的好工具了,下面我来分享一下我对phpxml理...
在php应用中PHP操作XML是常常要用到的,在php中操作xml文档有很多种方法,如DOMDocument就是一个对xml解析,读写,增加,删除的好工具了,下面我来分享一下我对php xml理解与学习笔记吧.

1、XML文件内容,代码如下:

  
      
        吴边  
        13222053785  
      
      
        吴边2  
        15151981159  
      
      
        test  
        15077887624  
      
      
        撒旦发撒旦发  
        132423142134  
      
      
        阿斯顿飞  
        1234123421342134  
      

2、生成新的XML文件,代码如下:

$doc=new DOMDocument("1.0","utf-8");  #声明文档类型  
$doc->formatOutput=true;              #设置可以输出操作  
#声明根节点,最好一个XML文件有个跟节点  
$root=$doc->createElement("phoneBook");#创建节点对象实体  
$doc->appendChild($root);            #把节点添加进来  
    
$person=$doc->createElement("person");  #创建节点对象实体    
$root->appendChild($person);    #把节点添加到root节点的子节点  
    
$cOntactName=$doc->createElement("name");  
$person->appendChild($contactName);  
    
$cOntactNum=$doc->createElement("tel");  
$person->appendChild($contactNum);  
    
$contactName->appendChild($doc->createTextNode($name));  
$contactNum->appendChild($doc->createTextNode($tel));  
    
$doc->save($filename); #保存路径 
3、XML文件添加节点,代码如下:
$doc = new DOMDocument();  #声明文档类型  
$doc -> load($filename);  
$root = $doc->getElementsByTagName("phoneBook")->item(0);  
        
$person = $doc->createElement("person");  
    
$cOntactName= $doc->createElement("name");  
$contactName->nodeValue = $name;  
    
$cOntactNum= $doc->createElement("tel");  
$contactNum->nodeValue = $tel;  
$person -> appendChild($contactName);  
$person -> appendChild($contactNum);  
$root -> appendChild($person);  
$doc->save($filename); #保存路径 
4、遍历XML文件,代码如下:
$xmldoc = new DOMDocument();  
$xmldoc -> load("contacts.xml");  
$root = $xmldoc->getElementsByTagName("person");  
foreach($root as $v){  
    echo $v->getElementsByTagName("name")->item(0)->nodeValue."
"; }

附上DOMDocument相关的内容.

属性:

Attributes 存储节点的属性列表(只读)
childNodes 存储节点的子节点列表(只读) 
dataType 返回此节点的数据类型 
Definition 以DTD或XML模式给出的节点的定义(只读) 
Doctype 指定文档类型节点(只读) 
documentElement 返回文档的根元素(可读写) 
firstChild 返回当前节点的第一个子节点(只读) 
Implementation 返回XMLDOMImplementation对象 
lastChild 返回当前节点最后一个子节点(只读) 
nextSibling 返回当前节点的下一个兄弟节点(只读) 
nodeName 返回节点的名字(只读) 
nodeType 返回节点的类型(只读) 
nodeTypedValue 存储节点值(可读写) 
nodeValue 返回节点的文本(可读写) 
ownerDocument 返回包含此节点的根文档(只读) 
parentNode 返回父节点(只读) 
Parsed 返回此节点及其子节点是否已经被解析(只读) 
Prefix 返回名称空间前缀(只读) 
preserveWhiteSpace 指定是否保留空白(可读写) 
previousSibling 返回此节点的前一个兄弟节点(只读) 
Text 返回此节点及其后代的文本内容(可读写) 
url 返回最近载入的XML文档的URL(只读) 
Xml 返回节点及其后代的XML表示(只读)

方法:

appendChild 为当前节点添加一个新的子节点,放在最后的子节点后 
cloneNode 返回当前节点的拷贝 
createAttribute 创建新的属性 
createCDATASection 创建包括给定数据的CDATA段 
createComment 创建一个注释节点 
createDocumentFragment 创建DocumentFragment对象 
createElement 创建一个元素节点 
createEntityReference 创建EntityReference对象 
createNode 创建给定类型,名字和命名空间的节点 
createPorcessingInstruction 创建操作指令节点 
createTextNode 创建包括给定数据的文本节点 
getElementsByTagName 返回指定名字的元素集合 
hasChildNodes 返回当前节点是否有子节点 
insertBefore 在指定节点前插入子节点 
Load 导入指定位置的XML文档 
loadXML 导入指定字符串的XML文档 
removeChild 从子结点列表中删除指定的子节点 
replaceChild 从子节点列表中替换指定的子节点 
Save 把XML文件存到指定节点 
selectNodes 对节点进行指定的匹配,并返回匹配节点列表 
selectSingleNode 对节点进行指定的匹配,并返回第一个匹配节点 
transformNode 使用指定的样式表对节点及其后代进行转换 
transformNodeToObject 使用指定的样式表将节点及其后代转换 
实例获取标签属性.值.


教程链接:

随意转载~但请保留教程地址★

推荐阅读
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讲述了如何通过代码在Android中更改Recycler视图项的背景颜色。通过在onBindViewHolder方法中设置条件判断,可以实现根据条件改变背景颜色的效果。同时,还介绍了如何修改底部边框颜色以及提供了RecyclerView Fragment layout.xml和项目布局文件的示例代码。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
author-avatar
pingyuki
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有