Heim > Artikel > Backend-Entwicklung > XML-DOM in PHP(11)
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.