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

XML DOM in php (11), xmldom_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:01:51839browse

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> );

Result:

<person>
        <name>huangliu</name>
        <age><span>18</span></age>
    </person>

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 tutoriald86e18d0e1a268e5df893f0c58798ad8load ( '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> );

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 tutoriald86e18d0e1a268e5df893f0c58798ad8load ( '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> );

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>);

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 ]...
Statement:
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