Home > Backend Development > PHP Tutorial > XML DOM in php (11), xmldom_PHP tutorial

XML DOM in php (11), xmldom_PHP tutorial

WBOY
Release: 2016-07-13 10:01:51
Original
837 people have browsed it

XML DOM (11) in php, xmldom

7.Create node

In DOM operations, addition, deletion and modification operations must find the parent node

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

Create node and return a node object

string $name: the name of the node (element name)

[, string $value]: The value of the node

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

Append child node

DOMNode $newnode: child node

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

Save the data in dom to the specified file

4. The documentElement attribute represents the root node in the dom model

<?<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> );
Copy after login

Result:

<person>
        <name>huangliu</name>
        <age><span>18</span></age>
    </person>
Copy after login

8, delete node

DOMNode DOMNode::removeChild ( DOMNode $oldnode )

DOMNode $oldnode: the node object to be deleted

Example: Delete the following blue part

XML DOM in php (11), xmldom_PHP tutorialphp header ( 'Content-Type:text/html;charset=gb2312' ); $dom = new DOMDocument ( '1.0', 'utf-8 ' ); $dom->load ( 'demo01.xml' ); // First find the node object to be deleted $person = $dom->getElementsByTagName ( 'person' )->item ( 1 ); // Delete node $dom->documentElement->removeChild ( $person ); // Resave the file $dom->save ( 'demo01.xml' );

9, modify node

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

DOMNode $newnode: New node

DOMNode $oldnode: original node

<?<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> );
Copy after login

10, Save

 string DOMDocument::saveXML

Save the data in dom to a string variable

 int DOMDocument::save ( string $filename )

Save the data in dom to the specified file

11, Regarding the addition, deletion and modification of attributes

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

Add attributes

string $name: attribute name

string $value: attribute value

Add the attribute id='s102' to person

XML DOM in php (11), xmldom_PHP tutorialphp header ( 'Content-Type:text/html;charset=gb2312' ); $dom = new DOMDocument ( '1.0', 'utf-8 ' ); $dom->load ( 'demo01.xml' ); // Add the id attribute for the second person // Find the second person $person = $dom->getElementsByTagName ( 'person' )->item ( 1 ); // Add id attribute $person->setAttribute ( 'id', 's102' ); // Save file $dom->save ( 'demo01.xml' );

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

Modify attributes

string $name: attribute name

string $value: attribute value

If a node does not have this attribute, it means adding the attribute (note the difference with the above)

If a node already has this attribute, it means modifying the attribute

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

Delete attributes (not delete nodes)

$name: attribute to be deleted

<?<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> );
Copy after login

4. Get attributes

string DOMElement::getAttribute ( string $name )

string $name: attribute 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>);
Copy after login

12 SimpleXML

PHP DOM: additions, deletions and modifications

SimpleXML: Query

1. Read xml

1. simpleXMLElement simplexml_load_file (string $filename)

Read data from an xml file

string $filename:xml file name

2. SimpleXMLElement::__construct (string data)

Read data from a string

String data: String in xml format

If the data is saved to a file, use simplexml_load_file to read it

If the data is saved to a string, use the constructor method of the SimpleXMLElement class to read it

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/971769.htmlTechArticleXML DOM in php (11), xmldom 7. When creating nodes in the dom operation, addition, deletion and modification operations must be Find the parent node 1. DOMElement DOMDocument::createElement ( string $name [, string $value ]...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template