PHP操作XML的知识点记录(DOMDocument)

1、XML文件内容

 代码如下 复制代码

<?xml version="1.0" encoding="utf-8"?>
<phoneBook>
    <person>
        <name>吴边</name>
        <tel>13222053785</tel>
    </person>
    <person>
        <name>吴边2</name>
        <tel>15151981159</tel>
    </person>
    <person>
        <name>test</name>
        <tel>15077887624</tel>
    </person>
    <person>
        <name>撒旦发撒旦发</name>
        <tel>132423142134</tel>
    </person>
    <person>
        <name>阿斯顿飞</name>
        <tel>1234123421342134</tel>
    </person>
</phoneBook>

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."<br/>";
}

附上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 使用指定的样式表将节点及其后代转换
实例获取标签属性.值:

时间: 2024-11-10 08:07:17

PHP操作XML的知识点记录(DOMDocument)的相关文章

PHPl使用DOM XML操作XML[总结]

1.前言   XML树状层次结构鲜明,非常适合作为配置文件.PHP中可以使用DOM XML来操作XML.本文总结一下PHP使用DOM XML创建.添加节点.查询XML文件.   2.使用DOM XML   XML中节点分为元素和文本,DOMDocument类型是文档类型,提供了操作元素和文本的成员函数和属性.   DOMDocument类如下:   复制代码 DOMDocument extends DOMNode { /* Properties */ readonly public string

PHP使用DOM XML操作XML[总结]

1.前言 XML树状层次结构鲜明,非常适合作为配置文件.PHP中可以使用DOM XML来操作XML.本文总结一下PHP使用DOM XML创建.添加节点.查询XML文件. 2.使用DOM XML XML中节点分为元素和文本,DOMDocument类型是文档类型,提供了操作元素和文本的成员函数和属性. DOMDocument类如下: DOMDocument extends DOMNode { /* Properties */ readonly public string $actualEncodin

用javascript操作xml

javascript|xml <script language="JavaScript"><!--var doc = new ActiveXObject("Msxml2.DOMDocument"); //ie5.5+,CreateObject("Microsoft.XMLDOM") //加载文档//doc.load("b.xml"); //创建文件头var p = doc.createProcessingIn

利用Visual Basic操作XML数据

visual|xml|数据 什么是XML 扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用. XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引.排序.查找.相关一致性等,XML仅仅是展示数据.事实上XML与其他数据表现形式最大的不同是:他极其简单.这是一个看上去有点琐细的优点,但正是

利用VisualBasic操作XML数据

visual|xml|数据 什么是XML 扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用. XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引.排序.查找.相关一致性等,XML仅仅是展示数据.事实上XML与其他数据表现形式最大的不同是:他极其简单.这是一个看上去有点琐细的优点,但正是

用FSO操作xml

fso|xml 试了一下,xmlDoc.save()行不同,就试着用fso做了出来.整理一下,供大家discuss. 由于用js操作本地xml文件之后save时会permission denied,所以据我所知就只能通过FSO来做.而用FSO,基本上就与文件是否是xml无关. xml文件: <root>  <parent>    <child1>one</child1>    <child2>one</child2>  </pa

Dreamweaver8新功能:建立XSLT页可视化操作XML数据

dreamweaver|dreamweaver8|xml|数据 开言DW8这个新的功能究竟好在哪里?这不得不先说了一些令初学者感到犯晕的多个技术名词.但注意:本文主要是进行例题的过程说明,您可以按照步骤很轻松地完成本案项目.不过终究会在操作进行时会遇到一些概念,这里先预介绍,内容只做概要,相关具体内容可搜索参考详细.先说XML这是什么?越来越多的站点开始应用了XML,最常见的就是各个BLOG中存在RSS.SO,现在出现了两个技术名词:XML和RSS.· 请大家多动手,多看多观察如下几个站点的RS

Flash &amp; Ajax 操作 XML 实例:无刷新分页

ajax|xml|分页|刷新|无刷新 其实标题只是一个噱头罢了,只是想谈一下,Javascript 与 Actionscript 是如何操作XML的. 希望能帮助一些只用 Javascript  或 只懂 Actionscript 的朋友,了解两者的相同与不同之处. Flash 与 后台连接有许多种,Actionscript 调用 XML() 算是比较简单的一种了, 而Javascript 调用 xmlHttp ,便形成了现在很流行的Ajax了. 现在就用一个网上常出现的分页效果来对 Flash

c#操作XML(读XML,写XML,更新,删除节点,与dataset结合等)

xml 我用的是一种很笨的方法,但可以帮助初学者了解访问XML节点的过程. 已知有一个XML文件(bookstore.xml)如下: Corets, Eva 5.95 1.插入节点 往节点中插入一个节点:  XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load("bookstore.xml"); XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找 XmlEleme