zoukankan      html  css  js  c++  java
  • 【万能的数据传输格式XML入门教程】六、PHP DOM模型增删改

    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 '移除成功';

    运行结果:

  • 相关阅读:
    windows phone 网络开发三部曲(一)各种包的各种抓法
    Windows phone UI虚拟化和数据虚拟化(二)
    Windows phone UI虚拟化和数据虚拟化(一)
    LongListSelector 控件 在 wp7 和wp8中的不同之处
    wp8 longlistselector 动态加载datatemplate
    解读Python发送邮件
    浅谈Python时间模块
    中文分词技术一:概念
    MySQL常用命令
    初步认识Hive
  • 原文地址:https://www.cnblogs.com/chenjiacheng/p/6522566.html
Copyright © 2011-2022 走看看