PHP DOM

1、简介
dom: Document Object Model 文档对象模型
DOM 把 XML 文档视为一种树结构。通过这个 DOM 树,可以访问所有的元素。可以修改它们的内容(文本以及属性),而且可以创建新的元素。元素,以及它们的文本和属性,均被视为节点。

2、主要类

DOMDocument类:文档类
DOMNodelist类:节点列表类
DOMNode类:节点类
DOMElement类:元素类

3、DOMDocument类

1)创建DOMDocument对象
DOMDocument::__construct ([ string $version [, string $encoding ]] )
[ string $version :版本
[, string $encoding ]] :编码格式

2)加载xml
mixed DOMDocument::load ( string $filename [, int $options = 0 ] )
string $filename:xml文件

3)获取节点
DOMNodeList DOMDocument::getElementsByTagName ( string $name )
通过元素名获取节点,返回的是一个节点列表类的对象。
string $name:节点名

4、DOMNodelist类
1)属性:
Lengrh:长度(节点个数)

2)方法:
DOMNode DOMNodelist::item ( int $index ) 
返回制定索引的节点

5、DOMNode类
1)属性:
nodeValue:节点的值

6、关于 XML 文档属性的读取

● bool DOMElement::hasAttribute ( string $name )
  判断节点是否具有某个属性
  string $name:属性名

● bool DOMNode::hasAttributes ( void )
  判断节点是否具有属性

● string DOMElement::getAttribute ( string $name )
  获取节点的某个属性的属性值
  string $name:属性值

7、关于对xml的增删改操作
注意:在增删改操作之前,一定要先找到这个节点的父节点。

1)增加操作
DOMElement DOMDocument::createElement ( string $name [, string $value ] ) 
创建一个节点元素
string $name :元素名(标签名) 
[, string $value ] :节点的值

DOMNode DOMNode::appendChild ( DOMNode $newnode ) 
追加子节点
DOMNode $newnode:要被追加的子节点

记住:所有操作是在内存中完成的,并不会直接对文件本身有影响,所以需要对dom中的数据重新保存。

2)删除操作
DOMNode DOMNode::removeChild ( DOMNode $oldnode ) 
DOMNode $oldnode:要被删除的节点对象

3)修改操作
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode ) 
使用新节点替换原节点
DOMNode $newnode :新节点 
DOMNode $oldnode :原节点

4)保存操作
● string DOMDocument::saveXML :将dom中的数据保存到一个字符串中
● int DOMDocument::save ( string $filename ) :将dom中的数据保存到一个文件中

8、关于  XML 文档属性的增删改
1)增加操作
DOMAttr DOMElement::setAttribute( string $name , string $value ) 
string $name :属性名
string $value :属性值

2)修改操作
DOMAttr DOMElement::setAttribute( string $name , string $value ) 
如果一个节点没有这个属性,那么这个方法就是添加操作
如果一个节点有这个属性,那么这个方法就是修改操作
string $name :属性名
string $value :属性值

3)删除操作
bool DOMElement::removeAttribute ( string $name )
string $name:要删除的属性名

4)查询操作
string DOMElement::getAttribute ( string $name )
string $name:属性名

没有更多推荐了,返回首页