1. PHP DOM模型增加操作五步走
第一步:开辟内存空间,形成“面”
第二步:载入XML数据到内存,形成DOM树结构
第三步:创建新节点
第四步:追加新节点到父节点
第五步:保存内存中的数据到XML文档中
public DOMElement DOMDocument::createElement ( string $name [, string $value ] )
主要功能:创建新节点
参数 | 说明 |
$name | 新节点名称 |
$value | 新节点的值 |
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
主要功能:追加子节点
参数 | 说明 |
$newnode | 要追加的新节点 |
public int DOMDocument::save ( string $filename [, int $options ] )
主要功能:保存内存中的数据到XML文档中
参数 | 说明 |
$filename | 要保存xml的名称 |
// 设置响应头信息 header('Content-type:text/html; charset=utf-8'); // 1、开辟内存空间,形成“面” $dom = new DOMDocument('1.0', 'utf-8'); // 2、载入xml文档到内存,形成DOM树 $dom->load('data.xml'); // 3、创建新节点 $book = $dom->createElement('book'); $title = $dom->createElement('title','水浒传'); $price = $dom->createElement('price','99.80'); $author = $dom->createElement('author','施耐庵'); $publish = $dom->createElement('publish','清华出版社'); // 4、追加新节点到父节点 $book->appendChild($title); $book->appendChild($price); $book->appendChild($author); $book->appendChild($publish); // 获取根节点 // $root = $dom->getElementsByTagName('library')->item(0); $root = $dom->documentElement; $root->appendChild($book); // 5、保存内存中的数据到XML文档中 $dom->save('data.xml'); echo '增加成功';
运行结果:
2. PHP DOM模型删除操作六步走
第一步:开辟内存空间,形成“面”
第二步:载入xml文档到内存,形成DOM树结构
第三步:找到要删除的节点
第四步:找到其父节点
第五步:删除操作
第六步:保存内存中的数据到XML文档中
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
主要功能:删除其子节点
参数 | 说明 |
$oldnode | 要删除的老节点 |
// 设置响应头信息 header('Content-type:text/html; charset=utf-8'); // 1、开辟内存空间,形成“面” $dom = new DOMDocument('1.0', 'utf-8'); // 2、载入XML文档到内存,形成DOM树 $dom->load('data.xml'); // 3、找到要删除的节点 $oldnode = $dom->getElementsByTagName('book')->item(1); // 4、找到其父节点 $root = $dom->documentElement; // 5、删除节点 $root->removeChild($oldnode); // 6、保存内存中的数据到XML文档中 $dom->save('data.xml'); echo '删除成功';
运行效果:
3. PHP DOM模型修改操作几步走
(1)值修改五步走:
第一步:开辟内存空间,形成“面”
第二步:载入XML文档到内存,形成DOM树
第三步:找到要修改的节点
第四步:通过nodeValue属性修改其值
第五步:保存内存中的数据到XML文档中
// 设置响应头信息 header('Content-type:text/html; charset=utf-8'); // 1、开辟内存空间形成“面” $dom = new DOMDocument('1.0', 'utf-8'); // 2、载入XML文档到内存 $dom->load('data.xml'); // 3、获取要修改的节点 $title = $dom->getElementsByTagName('title')->item(1); // 4、通过nodeValue修改其值 $title->nodeValue = '三国志'; // 5、保存内存中的数据到XML文档中 $dom->save('data.xml'); echo '值修改成功';
运行结果:
(2)节点修改七步走:
第一步:开辟内存空间,形成“面”
第二步:载入XML文档到内存,形成DOM树
第三步:找到要修改的老节点
第四步:创建新节点
第五步:找到老节点的父节点
第六步:用新节点替换老节点
第七步:保存内存中的数据到XML文档中
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
主要功能:用新节点替换老节点
参数 | 说明 |
$newnode | 新节点 |
$oldnode | 老节点 |
// 设置响应头信息 header('Content-type:text/html; charset=utf-8'); // 1、开辟内存空间,形成“面” $dom = new DOMDocument('1.0', 'utf-8'); // 2、载入xml文档到内存,形成DOM树 $dom->load('data.xml'); // 3、找到要修改的老节点 $oldnode = $dom->getElementsByTagName('title')->item(1); // 4、创建新节点 $newnode = $dom->createElement('title','三国演义'); // 5、找到老节点的父节点 $parentNode = $dom->getElementsByTagName('book')->item(1); // 6、用新节点替换老节点 $parentNode->replaceChild($newnode, $oldnode); // 7、保存内存中的数据到XML文档中 $dom->save('data.xml'); echo '替换成功';
运行结果:
4、PHP DOM模型属性操作(增删改查)
(1)属性的读取四步走
第一步:开辟内存空间,形成“面”
第二步:加载XML文档,形成DOM树
第三步:获取指定的元素
第四步:通过相关方法获取元素的属性
bool DOMElement::hasAttribute ( string $name )
主要功能:判断某个元素是否具有$name属性
参数说明:
参数 | 说明 |
$name | 属性名称 |
bool DOMNode:: hasAttributes ( void )
主要功能:判断某个元素是否具有属性
string DOMElement::getAttribute ( string $name )
主要功能:获取元素属性的值
参数 | 说明 |
$name | 要获取的属性名称 |
// 设置响应头信息 header('Content-type:text/html; charset=utf-8'); // 1、开辟内存空间,形成“面” $dom = new DOMDocument('1.0', 'utf-8'); // 2、载入xml到内存,形成DOM树结构 $dom->load('data.xml'); // 3、获取指定的元素 $book = $dom->getElementsByTagName('book')->item(1); // 4、根据相关方法获取元素属性的值 if($book->hasAttributes()) { echo '具有属性'; } else { echo '不具有属性'; } echo '<hr />'; if($book->hasAttribute('id')) { echo $book->getAttribute('id'); } else { echo '不具有id属性'; }
运行结果:
(2)增加与修改操作
DOMAttr DOMElement::setAttribute( string $name , string $value )
主要功能:如果一个元素没有某个属性,那么可以通过setAttribute进行添加
DOMAttr DOMElement::setAttribute( string $name , string $value )
主要功能:如果一个元素具有某个属性,那么可以通过setAttribute进行修改
// 设置响应头信息 header('Content-type:text/html; charset=utf-8'); // 1、开辟内存空间,形成“面” $dom = new DOMDocument('1.0', 'utf-8'); // 2、载入xml文档到内存中,形成DOM树 $dom->load('data.xml'); // 3、获取指定的元素 $book = $dom->getElementsByTagName('book')->item(1); // 4、修改元素的id属性 $book->setAttribute('id','b002'); // 5、保存内存中的数据到XML文档中 $dom->save('data.xml'); echo '更新成功';
运行结果:
(3)删除操作
bool DOMElement::removeAttribute ( string $name )
主要功能:删除元素的$name属性
参数 | 说明 |
$name | 要删除元素属性的名称 |
// 设置响应头信息 header('Content-type:text/html; charset=utf-8'); // 1、开辟内存空间,形成“面” $dom = new DOMDocument('1.0', 'utf-8'); // 2、载入xml文档到内存中,形成DOM树 $dom->load('data.xml'); // 3、获取指定元素 $book = $dom->getElementsByTagName('book')->item(1); // 4、移除指定的元素的属性 $book->removeAttribute('id'); // 5、保存数据到XML文档中 $dom->save('data.xml'); echo '移除成功';
运行结果: