PHP中DOM操作

一個簡單的例子

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

創建結點

CDATASectionCommentTextNode

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

參考

發佈了94 篇原創文章 · 獲贊 110 · 訪問量 80萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章