7.创建节点
在dom操作中,增删改操作必须要找父节点
1、DOMElement DOMDocument::createElement ( string $name [, string $value ] )
创建节点 ,返回的是一个节点对象
string $name :节点的名 (元素名)
立即学习“PHP免费学习笔记(深入)”;
[, string $value ] :节点的值
2、DOMNode DOMNode::appendChild ( DOMNode $newnode )
追加子节点
DOMNode $newnode:子节点
3、int DOMDocument::save ( string $filename )
将dom中的数据保存到指定的文件中
4、documentElement属性,表示dom模型中的根节点
<?<span>php
header ( </span><span>'</span><span>Content-Type:text/html;charset=gb2312</span><span>'</span><span> );
$dom </span>= <span>new</span> DOMDocument ( <span>'</span><span>1.0</span><span>'</span>, <span>'</span><span>utf-8</span><span>'</span><span> );
$dom</span>->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> );
</span><span>//</span><span> 创建节点仅仅是表示在内存中创建出这个节点对象,但这个对象和我们之前的
</span><span>//</span><span> dom模型没有任何联系</span>
$person = $dom->createElement ( <span>'</span><span>person</span><span>'</span><span> );
$name </span>= $dom->createElement ( <span>'</span><span>name</span><span>'</span>, <span>'</span><span>huangliu</span><span>'</span><span> );
$age </span>= $dom->createElement ( <span>'</span><span>age</span><span>'</span>, <span>'</span><span>18</span><span>'</span><span> );
</span><span>//</span><span> 将name和age做为子节点追加至person节点</span>
$person-><span>appendChild ( $name );
$person</span>-><span>appendChild ( $age );
</span><span>//</span><span> $dom->getElementsByTagName('persons')->item(0)->appendChild($newnode)
</span><span>//</span><span> 将person做了子节点追加至根节点</span>
$dom->documentElement-><span>appendChild ( $person );
</span><span>//</span><span> 将dom中的所有数据重新保存到demo01.xml文件中</span>
$dom->save ( <span>'</span><span>demo01.xml</span><span>'</span> );结果:
<person>
<name>huangliu</name>
<age><span>18</span></age>
</person>8、 删除节点
DOMNode DOMNode::removeChild ( DOMNode $oldnode )
DOMNode $oldnode:要被删除的节点对象
示例:把以下蓝色部分给删除掉

<?<span>php
header ( </span><span>'</span><span>Content-Type:text/html;charset=gb2312</span><span>'</span><span> );
$dom </span>= <span>new</span> DOMDocument ( <span>'</span><span>1.0</span><span>'</span>, <span>'</span><span>utf-8</span><span>'</span><span> );
$dom</span>->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> );
</span><span>//</span><span> 首先找到要删除的节点对象</span>
$person = $dom->getElementsByTagName ( <span>'</span><span>person</span><span>'</span> )->item ( <span>1</span><span> );
</span><span>//</span><span> 将节点删除</span>
$dom->documentElement-><span>removeChild ( $person );
</span><span>//</span><span> 重新保存文件</span>
$dom->save ( <span>'</span><span>demo01.xml</span><span>'</span> );9、修改节点
DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
DOMNode $newnode :新节点
DOMNode $oldnode :原节点
<?<span>php
header ( </span><span>'</span><span>Content-Type:text/html;charset=gb2312</span><span>'</span><span> );
$dom </span>= <span>new</span> DOMDocument ( <span>'</span><span>1.0</span><span>'</span>, <span>'</span><span>utf-8</span><span>'</span><span> );
$dom</span>->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> );
</span><span>//</span><span> 找到要被替换掉的节点</span>
$oldNode = $dom->getElementsByTagName ( <span>'</span><span>person</span><span>'</span> )->item ( <span>2</span><span> );
</span><span>//</span><span> 创建出新的节点</span>
$person = $dom->createElement ( <span>'</span><span>person</span><span>'</span><span> );
$name </span>= $dom->createElement ( <span>'</span><span>name</span><span>'</span>, <span>'</span><span>songjiang</span><span>'</span><span> );
$age </span>= $dom->createElement ( <span>'</span><span>age</span><span>'</span>, <span>100</span><span> );
$person</span>-><span>appendChild ( $name );
$person</span>-><span>appendChild ( $age );
</span><span>//</span><span> 用新节点替换原节点</span>
$dom->documentElement-><span>replaceChild ( $person, $oldNode );
</span><span>//</span><span> 保存文件</span>
$dom->save ( <span>'</span><span>demo01.xml</span><span>'</span> );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'这个属性

<?<span>php
header ( </span><span>'</span><span>Content-Type:text/html;charset=gb2312</span><span>'</span><span> );
$dom </span>= <span>new</span> DOMDocument ( <span>'</span><span>1.0</span><span>'</span>, <span>'</span><span>utf-8</span><span>'</span><span> );
$dom</span>->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> );
</span><span>//</span><span> 为第二个人添加id属性
</span><span>//</span><span> 找到第二个人</span>
$person = $dom->getElementsByTagName ( <span>'</span><span>person</span><span>'</span> )->item ( <span>1</span><span> );
</span><span>//</span><span> 添加id属性</span>
$person->setAttribute ( <span>'</span><span>id</span><span>'</span>, <span>'</span><span>s102</span><span>'</span><span> );
</span><span>//</span><span> 保存文件</span>
$dom->save ( <span>'</span><span>demo01.xml</span><span>'</span> );2、 DOMAttr DOMElement::setAttribute( string $name , string $value )
修改属性
string $name :属性名
string $value :属性值
如果一个节点没有此属性,表示添加属性 (注意与上面的区别)
如果一个节点已经存在这个属性,表示修改属性
3、bool DOMElement::removeAttribute ( string $name )
删除属性(不是删除节点)
$name:要被删除的属性
<?<span>php
header ( </span><span>'</span><span>Content-Type:text/html;charset=gb2312</span><span>'</span><span> );
$dom </span>= <span>new</span> DOMDocument ( <span>'</span><span>1.0</span><span>'</span>, <span>'</span><span>utf-8</span><span>'</span><span> );
$dom</span>->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> );
</span><span>//</span><span> 删除第2个人的id属性
</span><span>//</span><span> 找到第二个人</span>
$person = $dom->getElementsByTagName ( <span>'</span><span>person</span><span>'</span> )->item ( <span>1</span><span> );
</span><span>//</span><span> 删除id属性</span>
$person->removeAttribute(<span>'</span><span>id</span><span>'</span><span>);
</span><span>//</span><span> 保存文件</span>
$dom->save ( <span>'</span><span>demo01.xml</span><span>'</span> );4、获取属性
string DOMElement::getAttribute ( string $name )
string $name:属性名
<?<span>php
header ( </span><span>'</span><span>Content-Type:text/html;charset=gb2312</span><span>'</span><span> );
$dom </span>= <span>new</span> DOMDocument ( <span>'</span><span>1.0</span><span>'</span>, <span>'</span><span>utf-8</span><span>'</span><span> );
$dom</span>->load ( <span>'</span><span>demo01.xml</span><span>'</span><span> );
</span><span>//</span><span> 查询第1个人的id属性
</span><span>//</span><span> 找到第1个人</span>
$person = $dom->getElementsByTagName ( <span>'</span><span>person</span><span>'</span> )->item ( <span>0</span><span> );
</span><span>//</span><span> 查询id属性</span>
echo $person->getAttribute(<span>'</span><span>id</span><span>'</span>);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怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号