程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP XML操作類DOMDocument

PHP XML操作類DOMDocument

編輯:關於PHP編程

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 使用指定的樣式表將節點及其後代轉換

實例獲取標簽屬性.值:

Me.xml
復制代碼 代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<phplamp>
<post>
<title id="1">PHP XML處理介紹一</title>
<details>詳細內容一</details>
</post>
<post>
<title id="2">PHP XML處理介紹二</title>
<details>詳細內容二</details>
</post>
<post>
<title id="3">PHP XML處理介紹三</title>
<details>詳細內容三</details>
</post>
</phplamp>



復制代碼 代碼如下:
// 首先要建一個DOMDocument對象
$xml = new DOMDocument();

// 加載Xml文件
$xml->load("me.xml");

// 獲取所有的post標簽
$postDom = $xml->getElementsByTagName("post");

// 循環遍歷post標簽
foreach($postDom as $post){
// 獲取Title標簽Node
$title = $post->getElementsByTagName("title");

/**
* 要獲取Title標簽的Id屬性要分兩部走
* 1. 獲取title中所有屬性的列表也就是$title->item(0)->attributes
* 2. 獲取title中id的屬性,因為其在第一位所以用item(0)
*
* 小提示:
* 若取屬性的值可以用item(*)->nodeValue
* 若取屬性的標簽可以用item(*)->nodeName
* 若取屬性的類型可以用item(*)->nodeType
*/
echo "Id: " . $title->item(0)->attributes->item(0)->nodeValue . "<br />";
echo "Title: " . $title->item(0)->nodeValue . "<br />";
echo "Details: " . $post->getElementsByTagName("details")->item(0)->nodeValue . "<br /><br />";
}


下面是js讀取xml文件的代碼 ajax+xml留言
復制代碼 代碼如下:
var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
xmldoc.async = false;
var 舊發言 = "";
function getxml(){
try{
xmldoc.load("word.xml");
if(xmldoc.documentElement != null){
var 新發言 = xmldoc.xml;
if(新發言 != 舊發言){
舊發言 = 新發言;
var allwords = xmldoc.selectNodes("list/message");
新發言 = "";
for(var i = 0;i < allwords.length;i++){
var 數組 = allwords[i].text.split("@");
var 作者 = 數組[0];
if(作者 == 用戶名.value){
作者 = "<font color='Turquoise'>"+作者+"</font>";
}
else{
作者 = "<font color='Silver'>"+作者+"</font>";
}
var 發言= "<font color='Gold'>"+數組[1]+"</font>";
新發言 += "<div>"+作者+" "+發言+"</div>"
+"<div style='text-align:right;font-size:9px;'>"
+allwords[i].getAttribute("author").substring(0,allwords[i].getAttribute("author").lastIndexOf(".")+1)
+"* "
+allwords[i].getAttribute("time")
+"</div>";
}
words.innerHTML = 新發言;
words.scrollTop = words.scrollHeight;
}
}
}
catch(e){
}
}
var 讀取中 = false;
function getdata(){
if(!讀取中){
讀取中 = true;
getxml();
讀取中 = false;
}
setTimeout("getdata()",3000);
}
getdata();
submit.onclick = function(){
submit.disabled = true;
if(word.value != ""){
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlHttp.open("GET","save.php?name=" +encodeURIComponent(用戶名.value)+ "&word="+encodeURIComponent(word.value), true);
xmlHttp.setRequestHeader("Content-Type","text/html; charset=utf-8");
xmlHttp.send(null);
word.value = "";
if(!讀取中){
讀取中 = true;
getxml();
讀取中 = false;
}
}
setTimeout("submit.disabled = false;",3000);
word.focus();
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved