Heim  >  Artikel  >  Backend-Entwicklung  >  XML-DOM in PHP(11)

XML-DOM in PHP(11)

WBOY
WBOYOriginal
2016-08-08 09:27:45941Durchsuche

7. Knoten erstellen

Bei DOM-Operationen müssen Hinzufügungs-, Lösch- und Änderungsoperationen den übergeordneten Knoten finden

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

Knoten erstellen und ein Knotenobjekt zurückgeben

string $name: der Name des Knotens (Elementname)

[, string $value]: Der Wert des Knotens

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

Untergeordneten Knoten anhängen

DOMNode $newnode: untergeordneter Knoten

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

Speichern Sie die Daten im Dom in der angegebenen Datei

4. Das documentElement-Attribut stellt den Wurzelknoten im Dom-Modell dar

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

Ergebnis:

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

8. Knoten löschen

DOMNode DOMNode::removeChild ( DOMNode $oldnode )

DOMNode $oldnode: das zu löschende Knotenobjekt

Beispiel: Löschen Sie den folgenden blauen Teil

<?<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. Knoten ändern

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

DOMNode $newnode: Neuer Knoten

DOMNode $oldnode: Originalknoten

<?<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. Speichern

? string DOMDocument::saveXML

Speichern Sie die Daten im Dom in einer String-Variablen

? int DOMDocument::save ( string $filename )

Speichern Sie die Daten im Dom in der angegebenen Datei

11. In Bezug auf das Hinzufügen, Löschen und Ändern von Attributen

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

Attribute hinzufügen

string $name: Attributname

string $value: Attributwert

Fügen Sie der Person das Attribut id='s102' hinzu

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

Attribute ändern

string $name: Attributname

string $value: Attributwert

Wenn ein Knoten dieses Attribut nicht hat, bedeutet dies, dass das Attribut hinzugefügt wird (beachten Sie den Unterschied zum oben Gesagten)

Wenn ein Knoten bereits über dieses Attribut verfügt, muss das Attribut geändert werden

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

Attribute löschen (keine Knoten löschen)

$name: zu löschendes Attribut

<?<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. Attribute abrufen

string DOMElement::getAttribute ( string $name )

string $name: Attributname

<?<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: Ergänzungen, Löschungen und Änderungen

SimpleXML: Abfrage

1. XML lesen

1. simpleXMLElement simplexml_load_file (string $filename)

Daten aus einer XML-Datei lesen

string $filename:XML-Dateiname

2. SimpleXMLElement::__construct (String-Daten)

Daten aus einer Zeichenfolge lesen

String-Daten: String im XML-Format

Wenn die Daten in einer Datei gespeichert sind, verwenden Sie simplexml_load_file, um sie zu lesen

Wenn die Daten in einer Zeichenfolge gespeichert sind, verwenden Sie den Konstruktor der SimpleXMLElement-Klasse, um sie zu lesen

Das Obige stellt das XML-DOM (11) in PHP vor, einschließlich der relevanten Inhalte. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn