首頁  >  文章  >  後端開發  >  PHP XML操作類DOMDocument

PHP XML操作類DOMDocument

高洛峰
高洛峰原創
2017-01-06 15:30:561673瀏覽

DOMDocument相關的內容. 

屬性: 

Attributes 儲存節點的屬性清單(唯讀) 
childNodes 儲存節點的子節點清單(唯讀) 
dataType 傳回此節點的資料節點:離開的節點的定義(唯讀) 
Doctype 指定文件類型節點(唯讀) 
documentElement 傳回文件的根元素(可讀寫) 
firstChild 傳回目前節點的第一個子節點(唯讀) 
Implementation 返回目前節點的第一個子節點(唯讀) 
Implementation 返回目前節點的第一個子節點傳回物件 
lastChild 傳回目前節點最後一個子節點(唯讀) 
nextSibling 傳回目前節點的下一個兄弟節點(唯讀) 
nodeName 回傳節點的名字(唯讀) 
nodeType 傳回節點的類型(唯讀) 儲存節點值(可讀寫) 
nodeValue 傳回節點的文字(可讀寫) 
ownerDocument 傳回包含此節點的根文件(唯讀) 
parentNode 傳回父節點(唯讀) 
Parsed 傳回此節點及其子節點是否已被解析(唯讀) 
Prefix 傳回名稱空間前綴(唯讀) 
preserveWhiteSpace 指定是否保留空白(可讀寫) 
previousSibling 傳回此節點的前一個兄弟節點(唯讀) 
Text 返回此節點及其節點及其後代的文字內容(可讀寫) 
url 傳回最近載入的XML文件的URL(唯讀) 
Xml 返回節點及其後代的XML表示(唯讀) 



方法: 

新增一個新的子節點,放在最後的子節點後 
cloneNode 傳回目前節點的拷貝 
createAttribute 建立新的屬性 
createCDATASection 建立包含給定資料的CDATA段 
createCommfragcreate"建立一個元素節點 
createEntityReference 建立EntityReference物件 
createNode 建立給定類型,名字和命名空間的節點 
createPorcessingInstruction 建立操作指令節點 
createhas 建立給定資料的文字節點集傳回定資料的節點是否有子節點 
insertBefore 在指定節點前插入子節點 
Load 導入指定位置的XML文檔 
loadXML 導入指定字串的XML文檔 
removeChild 從子結點子節點列表中刪除指定的子節點列表中取代指定的子節點 
Save 把XML檔案存到指定節點 
selectNodes 對節點進行指定的符合,並傳回符合節點清單 
selectSingleNode 對節點進行指定的符合,並傳回第一個符合節點清單 
selectSingleNode 對節點進行指定的符合,並傳回第一個符合節點清單 
selectSingleNode 對節點進行指定的符合,並傳回第一個符合節點清單 
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留言
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=&#39;Turquoise&#39;>"+作者+"</font>"; 
} 
else{ 
作者 = "<font color=&#39;Silver&#39;>"+作者+"</font>"; 
} 
var 发言= "<font color=&#39;Gold&#39;>"+数组[1]+"</font>"; 
新发言 += "<div>"+作者+" "+发言+"</div>" 
+"<div style=&#39;text-align:right;font-size:9px;&#39;>" 
+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(); 
}

更多PHP XML操作類DOMDocument相關文章請追蹤PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn