php xml dom中有&,php中的XML DOM(11)

7.创建节点

在dom操作中,增删改操作必须要找父节点

1、DOMElement DOMDocument::createElement ( string $name [, string $value ] )

创建节点 ,返回的是一个节点对象

string $name :节点的名 (元素名)

[, string $value ] :节点的值

2、DOMNode DOMNode::appendChild ( DOMNode $newnode )

追加子节点

DOMNode $newnode:子节点

3、int DOMDocument::save ( string $filename )

将dom中的数据保存到指定的文件中

4、documentElement属性,表示dom模型中的根节点

php

header ('Content-Type:text/html;charset=gb2312');

$dom= new DOMDocument ( '1.0', 'utf-8');

$dom->load ( 'demo01.xml');//创建节点仅仅是表示在内存中创建出这个节点对象,但这个对象和我们之前的//dom模型没有任何联系

$person = $dom->createElement ( 'person');

$name= $dom->createElement ( 'name', 'huangliu');

$age= $dom->createElement ( 'age', '18');//将name和age做为子节点追加至person节点

$person->appendChild ( $name );

$person->appendChild ( $age );//$dom->getElementsByTagName('persons')->item(0)->appendChild($newnode)//将person做了子节点追加至根节点

$dom->documentElement->appendChild ( $person );//将dom中的所有数据重新保存到demo01.xml文件中

$dom->save ( 'demo01.xml' );

结果:

huangliu

18

8、 删除节点

DOMNode DOMNode::removeChild ( DOMNode $oldnode )

DOMNode $oldnode:要被删除的节点对象

示例:把以下蓝色部分给删除掉

20150322141657_9218.png

php

header ('Content-Type:text/html;charset=gb2312');

$dom= new DOMDocument ( '1.0', 'utf-8');

$dom->load ( 'demo01.xml');//首先找到要删除的节点对象

$person = $dom->getElementsByTagName ( 'person' )->item ( 1);//将节点删除

$dom->documentElement->removeChild ( $person );//重新保存文件

$dom->save ( 'demo01.xml' );

9、修改节点

DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )

DOMNode $newnode :新节点

DOMNode $oldnode :原节点

php

header ('Content-Type:text/html;charset=gb2312');

$dom= new DOMDocument ( '1.0', 'utf-8');

$dom->load ( 'demo01.xml');//找到要被替换掉的节点

$oldNode = $dom->getElementsByTagName ( 'person' )->item ( 2);//创建出新的节点

$person = $dom->createElement ( 'person');

$name= $dom->createElement ( 'name', 'songjiang');

$age= $dom->createElement ( 'age', 100);

$person->appendChild ( $name );

$person->appendChild ( $age );//用新节点替换原节点

$dom->documentElement->replaceChild ( $person, $oldNode );//保存文件

$dom->save ( 'demo01.xml' );

10、 保存

? string DOMDocument::saveXML

将dom中的数据保存至一个字符串变量中

? int DOMDocument::save ( string $filename )

将dom中的数据保存到指定的文件中

11、关于属性的增删改

1、DOMAttr DOMElement::setAttribute( string $name , string $value )

添加属性

string $name :属性名

string $value :属性值

为person添加id='s102'这个属性

20150322141657_9687.png

php

header ('Content-Type:text/html;charset=gb2312');

$dom= new DOMDocument ( '1.0', 'utf-8');

$dom->load ( 'demo01.xml');//为第二个人添加id属性//找到第二个人

$person = $dom->getElementsByTagName ( 'person' )->item ( 1);//添加id属性

$person->setAttribute ( 'id', 's102');//保存文件

$dom->save ( 'demo01.xml' );

2、 DOMAttr DOMElement::setAttribute( string $name , string $value )

修改属性

string $name :属性名

string $value :属性值

如果一个节点没有此属性,表示添加属性 (注意与上面的区别)

如果一个节点已经存在这个属性,表示修改属性

3、bool DOMElement::removeAttribute ( string $name )

删除属性(不是删除节点)

$name:要被删除的属性

php

header ('Content-Type:text/html;charset=gb2312');

$dom= new DOMDocument ( '1.0', 'utf-8');

$dom->load ( 'demo01.xml');//删除第2个人的id属性//找到第二个人

$person = $dom->getElementsByTagName ( 'person' )->item ( 1);//删除id属性

$person->removeAttribute('id');//保存文件

$dom->save ( 'demo01.xml' );

4、获取属性

string DOMElement::getAttribute ( string $name )

string $name:属性名

php

header ('Content-Type:text/html;charset=gb2312');

$dom= new DOMDocument ( '1.0', 'utf-8');

$dom->load ( 'demo01.xml');//查询第1个人的id属性//找到第1个人

$person = $dom->getElementsByTagName ( 'person' )->item ( 0);//查询id属性

echo $person->getAttribute('id');

12 SimpleXML

PHP DOM:增删改

SimpleXML:查询

一、 读取xml

1、 simpleXMLElement simplexml_load_file ( string $filename)

从某个xml文件中读取数据

string $filename:xml文件名

2、SimpleXMLElement::__construct ( string data)

从某个字符串中读取数据

String data:xml格式的字符串

如果数据保存到文件中,使用simplexml_load_file读取

如果数据保存到字符串中,使用SimpleXMLElement类的构造方法读取

以上就介绍了php中的XML DOM(11),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值