>  기사  >  백엔드 개발  >  PHP XML 작업 클래스 DOMDocument

PHP XML 작업 클래스 DOMDocument

高洛峰
高洛峰원래의
2017-01-06 15:30:561617검색

DOMDocument 관련 콘텐츠

속성:

속성 스토리지 노드의 속성 목록(읽기 전용)
childNodes 스토리지 노드의 하위 노드 목록(읽기 전용)
dataType 반환 이 노드의 데이터 유형
Definition DTD 또는 XML 모드에서 제공된 노드의 정의(읽기 전용)
Doctype 문서 유형 노드를 지정합니다(읽기 전용)
documentElement 노드의 루트 요소를 반환합니다. 문서(읽기 및 쓰기 가능) )
firstChild는 현재 노드의 첫 번째 하위 노드를 반환합니다(읽기 전용)
구현은 XMLDOMImplementation 객체를 반환합니다.
lastChild는 현재 노드의 마지막 하위 노드를 반환합니다(읽기 전용). )
nextSibling은 현재 노드 중 다음 노드를 반환합니다. Sibling 노드(읽기 전용)
nodeName은 노드의 이름을 반환합니다(읽기 전용)
nodeType은 노드의 유형을 반환합니다(읽기 전용)
nodeTypedValue는 노드 값을 저장합니다(읽기 가능 및 쓰기 가능)
nodeValue는 노드의 텍스트(읽기 가능 및 쓰기 가능)를 반환합니다.
ownerDocument는 이 노드를 포함하는 루트 문서를 반환합니다(읽기 전용)
parentNode는 상위 노드( 읽기 전용)
Parsed는 이 노드와 해당 하위 노드가 구문 분석되었는지 여부를 반환합니다(읽기 전용)
Prefix는 네임스페이스 접두사를 반환합니다(읽기 전용).
preserveWhiteSpace는 공백을 유지할지 여부를 지정합니다(읽기 가능). 및 쓰기 가능)
previousSibling은 이 노드의 이전 형제 노드를 반환합니다(읽기 전용)
Text는 이 노드와 해당 하위 항목의 텍스트 콘텐츠를 반환합니다(읽기 및 쓰기 가능).
url 최근 노드의 URL을 반환합니다. 로드된 XML 문서(읽기 전용)
Xml 노드와 해당 하위 항목의 XML 표현을 반환합니다(읽기 전용)



메서드:

appendChild는 새 하위 노드를 현재 노드에 추가하고 마지막 하위 노드 뒤에 배치합니다.
cloneNode는 현재 노드의 복사본을 반환합니다.
createAttribute는 새 속성을 생성합니다.
createCDATASection 지정된 데이터를 포함하는 CDATA 세그먼트를 생성합니다.
createComment 주석 노드 생성
createDocumentFragment DocumentFragment 객체 생성
createElement 요소 노드 생성
createEntityReference EntityReference 객체 생성
createNode 지정된 유형, 이름 및 네임스페이스 노드 생성
createPorcessingInstruction 작업 지침 노드 생성
createTextNode 주어진 데이터를 포함하는 텍스트 노드 생성
getElementsByTagName 지정된 이름을 가진 요소 컬렉션을 반환합니다.
hasChildNodes 현재 노드에 하위 노드가 있는지 여부를 반환합니다.
insertBefore in 지정된 노드 앞에 하위 노드 삽입
Load 지정된 위치에서 XML 문서를 가져옵니다.
loadXML 지정된 문자열로 XML 문서를 가져옵니다.
removeChild 하위 노드 목록에서 지정된 하위 노드를 제거합니다.
replaceChild 하위 노드 목록에서 지정된 하위 노드를 바꿉니다. node in
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>
다음은 js가 xml 파일 ajax+xml 메시지를 읽는 코드입니다
// 首先要建一个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 />"; 
}

PHP XML 작업 관련 더 많은 글은 class DOMDocument, PHP 중국어 웹사이트를 팔로우하세요!
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(); 
}
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.