Heim >Backend-Entwicklung >PHP-Tutorial >PHP-XML-Operationsklasse DOMDocument

PHP-XML-Operationsklasse DOMDocument

高洛峰
高洛峰Original
2017-01-06 15:30:561707Durchsuche

DOMDocument-bezogener Inhalt

Attribute:

Attributliste des Speicherknotens (schreibgeschützt)
Liste der untergeordneten Knoten des Speicherknotens childNodes (schreibgeschützt)
dataType Gibt zurück der Datentyp dieses Knotens
Definition Die Definition des Knotens im DTD- oder XML-Modus (schreibgeschützt)
Doctype Gibt den Dokumenttypknoten an (schreibgeschützt)
documentElement Gibt das Stammelement des zurück Dokument (lesbar und beschreibbar) )
firstChild gibt den ersten untergeordneten Knoten des aktuellen Knotens zurück (schreibgeschützt)
Implementation gibt das XMLDOMImplementation-Objekt zurück
lastChild gibt den letzten untergeordneten Knoten des aktuellen Knotens zurück (schreibgeschützt). )
nextSibling gibt den nächsten Geschwisterknoten des aktuellen Knotens zurück (schreibgeschützt)
nodeName gibt den Namen des Knotens zurück (schreibgeschützt)
nodeType gibt den Typ des Knotens zurück (schreibgeschützt)
nodeTypedValue speichert den Knotenwert (lesbar und beschreibbar)
nodeValue gibt den Text des Knotens zurück (lesbar und beschreibbar)
ownerDocument gibt das Stammdokument zurück, das diesen Knoten enthält (schreibgeschützt)
parentNode gibt den übergeordneten Knoten zurück ( schreibgeschützt)
Parsed gibt zurück, ob dieser Knoten und seine untergeordneten Knoten analysiert wurden (schreibgeschützt)
Prefix gibt das Namespace-Präfix zurück (schreibgeschützt)
preserveWhiteSpace gibt an, ob das Leerzeichen beibehalten werden soll (lesbar).
previousSibling gibt den vorherigen Geschwisterknoten dieses Knotens zurück (schreibgeschützt)
Text gibt diesen Knoten und seinen Textinhalt der Nachkommen zurück (lesbar und beschreibbar)
url Gibt die URL des zuletzt verwendeten Knotens zurück geladenes XML-Dokument (schreibgeschützt)
Xml Gibt die XML-Darstellung des Knotens und seiner Nachkommen zurück (schreibgeschützt)



Methode:

appendChild fügt a hinzu neuer untergeordneter Knoten zum aktuellen Knoten und platziert ihn nach dem letzten untergeordneten Knoten
cloneNode gibt eine Kopie des aktuellen Knotens zurück
createAttribute erstellt ein neues Attribut
createCDATASection Erstellt ein CDATA-Segment einschließlich der angegebenen Daten
createComment Erstellen Sie einen Kommentarknoten
createDocumentFragment Erstellen Sie ein DocumentFragment-Objekt
createElement Erstellen Sie einen Elementknoten
createEntityReference Erstellen Sie ein EntityReference-Objekt
createNode Erstellen Sie einen bestimmten Typ-, Namens- und Namespace-Knoten
createPorcessingInstruction Operationsanweisungsknoten erstellen
createTextNode Erstellt einen Textknoten einschließlich der angegebenen Daten
getElementsByTagName Gibt eine Sammlung von Elementen mit dem angegebenen Namen zurück
hasChildNodes Gibt zurück, ob der aktuelle Knoten untergeordnete Knoten hat
insertBefore in Fügt einen untergeordneten Knoten vor dem angegebenen Knoten ein
Load Importiert das XML-Dokument am angegebenen Speicherort.
loadXML Importiert das XML-Dokument mit der angegebenen Zeichenfolge.
removeChild. Entfernt den angegebenen untergeordneten Knoten aus der Liste der untergeordneten Knoten.
replaceChild Aus der Liste der untergeordneten Knoten. Ersetzt das angegebene untergeordnete Element node in
Save Speichern Sie die XML-Datei im angegebenen Knoten
selectNodes Führt die angegebene Übereinstimmung auf dem Knoten durch und gibt die Liste der übereinstimmenden Knoten zurück
selectSingleNode Führt die angegebene Übereinstimmung auf dem Knoten durch und gibt den ersten Übereinstimmungsknoten zurück
transformNode verwendet das angegebene Stylesheet, um den Knoten und seine Nachkommen zu transformieren.

Instanz erhält das Label-Attribut:

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 />"; 
}
Das Folgende ist der Code für js zum Lesen der XML-Datei Ajax+XML-Nachricht

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(); 
}
Weitere Artikel zum PHP-XML-Betrieb Klasse DOMDokument, bitte folgen Sie der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn