在php應用中PHP操作XML是常常要用到的,在php中操作xml文檔有很多種方法,如DOMDocument就是一個對xml解析,讀寫,增加,刪除的好工具了,下面我來分享一下我對php xml理解與學習筆記吧.
1、XML文件內容,代碼如下:
- <?xml version="1.0" encoding="utf-8"?>
- <phoneBook>
- <person>
- <name>吳邊</name>
- <tel>13222053785</tel>
- </person>
- <person>
- <name>吳邊2</name>
- <tel>15151981159</tel>
- </person>
- <person>
- <name>test</name>
- <tel>15077887624</tel>
- </person>
- <person>
- <name>撒旦發撒旦發</name>
- <tel>132423142134</tel>
- </person>
- <person>
- <name>阿斯頓飛</name>
- <tel>1234123421342134</tel>
- </person>
- </phoneBook>
2、生成新的XML文件,代碼如下:
- $doc=new DOMDocument("1.0","utf-8"); #聲明文檔類型
- $doc->formatOutput=true; #設置可以輸出操作
- #聲明根節點,最好一個XML文件有個跟節點
- $root=$doc->createElement("phoneBook");#創建節點對象實體
- $doc->appendChild($root); #把節點添加進來
- $person=$doc->createElement("person"); #創建節點對象實體
- $root->appendChild($person); #把節點添加到root節點的子節點
- $contactName=$doc->createElement("name");
- $person->appendChild($contactName);
- $contactNum=$doc->createElement("tel");
- $person->appendChild($contactNum);
- $contactName->appendChild($doc->createTextNode($name));
- $contactNum->appendChild($doc->createTextNode($tel));
- $doc->save($filename); #保存路徑
3、XML文件添加節點,代碼如下:
- $doc = new DOMDocument(); #聲明文檔類型
- $doc -> load($filename);
- $root = $doc->getElementsByTagName("phoneBook")->item(0);
- $person = $doc->createElement("person");
- $contactName = $doc->createElement("name");
- $contactName->nodeValue = $name;
- $contactNum = $doc->createElement("tel");
- $contactNum->nodeValue = $tel;
- //開源代碼Vevb.com
- $person -> appendChild($contactName);
- $person -> appendChild($contactNum);
- $root -> appendChild($person);
- $doc->save($filename); #保存路徑
4、遍歷XML文件,代碼如下:
- $xmldoc = new DOMDocument();
- $xmldoc -> load("contacts.xml");
- $root = $xmldoc->getElementsByTagName("person");
- foreach($root as $v){
- echo $v->getElementsByTagName("name")->item(0)->nodeValue."<br/>";
- }
附上DOMDocument相關的內容.
屬性:
Attributes 存儲節點的屬性列表(只讀)
childNodes 存儲節點的子節點列表(只讀)
dataType 返回此節點的數據類型
Definition 以DTD或XML模式給出的節點的定義(只讀)
Doctype 指定文檔類型節點(只讀)
documentElement 返回文檔的根元素(可讀寫)
firstChild 返回當前節點的第一個子節點(只讀)
Implementation 返回XMLDOMImplementation對象
lastChild 返回當前節點最后一個子節點(只讀)
nextSibling 返回當前節點的下一個兄弟節點(只讀)
nodeName 返回節點的名字(只讀)
nodeType 返回節點的類型(只讀)
nodeTypedValue 存儲節點值(可讀寫)
nodeValue 返回節點的文本(可讀寫)
ownerDocument 返回包含此節點的根文檔(只讀)
parentNode 返回父節點(只讀)
Parsed 返回此節點及其子節點是否已經被解析(只讀)
Prefix 返回名稱空間前綴(只讀)
preserveWhiteSpace 指定是否保留空白(可讀寫)
previousSibling 返回此節點的前一個兄弟節點(只讀)
Text 返回此節點及其后代的文本內容(可讀寫)
url 返回最近載入的XML文檔的URL(只讀)
Xml 返回節點及其后代的XML表示(只讀)
方法:
appendChild 為當前節點添加一個新的子節點,放在最后的子節點后
cloneNode 返回當前節點的拷貝
createAttribute 創建新的屬性
createCDATASection 創建包括給定數據的CDATA段
createComment 創建一個注釋節點
createDocumentFragment 創建DocumentFragment對象
createElement 創建一個元素節點
createEntityReference 創建EntityReference對象
createNode 創建給定類型,名字和命名空間的節點
createPorcessingInstruction 創建操作指令節點
createTextNode 創建包括給定數據的文本節點
getElementsByTagName 返回指定名字的元素集合
hasChildNodes 返回當前節點是否有子節點
insertBefore 在指定節點前插入子節點
Load 導入指定位置的XML文檔
loadXML 導入指定字符串的XML文檔
removeChild 從子結點列表中刪除指定的子節點
replaceChild 從子節點列表中替換指定的子節點
Save 把XML文件存到指定節點
selectNodes 對節點進行指定的匹配,并返回匹配節點列表
selectSingleNode 對節點進行指定的匹配,并返回第一個匹配節點
transformNode 使用指定的樣式表對節點及其后代進行轉換
transformNodeToObject 使用指定的樣式表將節點及其后代轉換
實例獲取標簽屬性.值.
新聞熱點
疑難解答