Home  >  Article  >  Backend Development  >  PHP XML operation class DOMDocument

PHP XML operation class DOMDocument

高洛峰
高洛峰Original
2017-01-06 15:30:561687browse

DOMDocument related content.

Attributes:

Attributes The attribute list of the storage node (read-only)
childNodes The list of child nodes of the storage node (read-only)
dataType Returns the data type of this node
Definition The definition of the node given in DTD or XML mode (read-only)
Doctype Specifies the document type node (read-only)
documentElement Returns the root element of the document (readable and writable) )
firstChild returns the first child node of the current node (read-only)
Implementation returns the XMLDOMImplementation object
lastChild returns the last child node of the current node (read-only)
nextSibling returns the next one of the current node Sibling node (read-only)
nodeName returns the name of the node (read-only)
nodeType returns the type of the node (read-only)
nodeTypedValue stores the node value (readable and writable)
nodeValue returns the text of the node (Readable and writable)
ownerDocument Returns the root document containing this node (read-only)
parentNode Returns the parent node (read-only)
Parsed Returns whether this node and its child nodes have been parsed (read-only)
Prefix Returns the namespace prefix (read-only)
preserveWhiteSpace Specifies whether to keep the blank space (readable and writable)
previousSibling Returns the previous sibling node of this node (read-only)
Text Returns this node and its The text content of the descendants (readable and writable)
url Returns the URL of the recently loaded XML document (read-only)
Xml Returns the XML representation of the node and its descendants (read-only)



Method:

appendChild adds a new child node to the current node and places it after the last child node
cloneNode returns a copy of the current node
createAttribute creates a new attribute
createCDATASection creates a CDATA segment including the given data
createComment creates a comment node
createDocumentFragment creates a DocumentFragment object
createElement creates an element node
createEntityReference creates an EntityReference object
createNode creates a given type, name and Namespace node
createPorcessingInstruction Creates an operation instruction node
createTextNode Creates a text node including the given data
getElementsByTagName Returns a collection of elements with the specified name
hasChildNodes Returns whether the current node has child nodes
insertBefore Insert a child node before the specified node
Load Import the XML document at the specified location
loadXML Import the XML document of the specified string
removeChild Delete the specified child node from the child node list
replaceChild From the child node list Replace the specified child node in
Save Save the XML file to the specified node
selectNodes Perform the specified match on the node and return the matching node list
selectSingleNode Perform the specified match on the node and return the first match Node
transformNode uses the specified style sheet to transform the node and its descendants
transformNodeToObject uses the specified style sheet to transform the node and its descendants

Instance gets the label attribute. Value:

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 />"; 
}

The following is the code for js to read the xml file ajax+xml message

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

For more articles related to PHP XML operation class DOMDocument, please pay attention to the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn