一個簡單的例子
<?php
//初始化一個DOMDocument
$xml = new DOMDocument('1.0','UTF-8');
//創建一個tag名爲people的Element,並添加到DOMDocument中
$people = $xml->createElement('people');
$xml->appendChild($people);
//創建一個tag名爲person、值爲lily、並帶有一個屬性id=101的Element,最後添加到people的Element中
$person1 = $xml->createElement('person','lily');
$people->appendChild($person1);
$person1->setAttribute('id',101);
//創建一個tag名爲person、值爲lucy、並帶有一個屬性id=102的Element,最後添加到people的Element中
$person2 = $xml->createElement('person','lucy');
$people->appendChild($person2);
$person2->setAttribute('id',102);
echo $xml->saveXML();
創建結點
CDATASection
、Comment
、TextNode
<?php
$xml = new DOMDocument('1.0','UTF-8');
$people = $xml->createElement('people');
$xml->appendChild($people);
$person1 = $xml->createElement('person');
$people->appendChild($person1);
$person1->setAttribute('id',101);
$name = $xml->createElement('name','lily');
$person1->appendChild($name);
//CDATA
$cdata = $xml->createCDATASection('cdata cdata cdata cdata');
$person1->appendChild($cdata);
//評論
$comment = $xml->createComment('comment comment comment');
$person1->appendChild($comment);
//文本
$textNode = $xml->createTextNode('text text text text');
$person1->appendChild($textNode);
$person2 = $xml->createElement('person');
$people->appendChild($person2);
$person2->setAttribute('id',102);
$name = $xml->createElement('name','lucy');
$person2->appendChild($name);
$xml->save('1.xml');
echo $xml->saveXML();
查找
- getElementById,通過ID查找一個
- getElementByTagName,通過tag名稱查找多個
getElementById 有坑
$xml = new DOMDocument();
$xml->load('1.xml');
$nodeList = $xml->getElementsByTagName('person');
foreach ($nodeList as $node){
/** @var DOMNode $node */
echo $node->getNodePath()."\n";
}
輸出
/people/person[1]
/people/person[2]
讀取
- loadXML,從字符串中讀取XML
- load, 從文件中讀取XML
- loadHTML,從字符串中讀取HTML
- loadHTMLFile,從文件中讀取HTML
例子
$xml = new DOMDocument();
$xml->load('1.xml');
echo $xml->saveXML();
保存
$xml->save(‘out.xml’)
輸出結果到文件中
<?xml version="1.0" encoding="UTF-8"?>
<people><person id="101">lily</person><person id="102">lucy</person></people>
echo $xml->saveXML()
輸出結果到控制檯中
<?xml version="1.0" encoding="UTF-8"?>
<people><person id="101">lily</person><person id="102">lucy</person></people>
echo $xml->saveHTML()
輸出結果到控制檯中
<people><person id="101">lily</person><person id="102">lucy</person></people>
echo $xml->saveHTMLFile(‘out.html’)
輸出結果到文件中
<people><person id="101">lily</person><person id="102">lucy</person></people>