>웹 프론트엔드 >JS 튜토리얼 >Dom을 사용하여 Javascript에서 Xml_javascript 기술 작동

Dom을 사용하여 Javascript에서 Xml_javascript 기술 작동

WBOY
WBOY원래의
2016-05-16 19:26:05875검색

하나. XML 파일
2. IXMLDOMDocument/DOMDocument 소개
2.1 속성
2.1.1 parsError
2.1.2 async.
2.1.3 xml
2.1.4 text 3
2.1.5 속성
2.1.6 nodeName
2.1.7 documentElement
2.1.8 nextSibling
2.1.9 childNodes
2.1 .10 firstChild
2.1.11 lashChild
2.2 메서드
2.2.1 loadXML
2.2.2 로드
2.2.3 selectSingleNode
2 .2.4 selectNodes
2.2.5 getElementsByTagName
2.2.6 hasChildNodes
3. 예시
1. XML 파일


c
20

1


2


asp.net에서 코드를 구현합니다.
string str = Server.MapPath("test1.xml");
XmlTextWriter xmlWriter = new XmlTextWriter(str,null);
xmlWriter.Formatting = System.Xml.Formatting.Indented
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("book");
xmlWriter.WriteAttributeString("level","1");
xmlWriter.WriteElementString("Name","c "); ("가격","20");
xmlWriter.WriteStartElement("info");
xmlWriter.WriteElementString("k","1")
xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("info");
xmlWriter.WriteElementString("k","2");
xmlWriter.WriteEndElement();
xmlWriter.WriteEndDocument( );
xmlWriter.Close()
2. IXMLDOMDocument/DOMDocument 소개
2.1 속성
2.1.1 parseError
마지막 구문 분석 오류에 대한 정보가 포함된 IXMLDOMParseError 개체를 반환합니다.
오류를 구문 분석할 때 개체를 반환합니다.
중요한 것은parseError.errorCode,parseError.reason
로드시 경로가 틀리면 "시스템이 지정된 개체를 찾지 못했습니다."라는 오류가 반환됩니다.
2.1.2 async
비동기 다운로드 허용 여부를 지정합니다.
비동기 다운로드 허용 여부, 부울 값
2.1.3 xml
노드 및 모든 하위 항목의 XML 표현이 포함됩니다.
이 지점과 모두. 아래에서 파생된 포인트의 모든 정보, 읽기 전용입니다. 북 포인트의 xml을 요청하면 "

c
2012”, Name이 xml인 경우 “c ” 반환 2.1.4 text 텍스트를 나타냅니다. 노드의 내용 또는 노드와 그 자손을 나타내는 연결된 텍스트 읽기/쓰기 이 포인트와 아래에서 파생된 모든 포인트의 모든 노드 값, 읽기 및 쓰기 가능
20

텍스트는 20
"Name" 노드의 텍스트는 "c"입니다. 2.1.5 속성 이 노드의 속성 목록을 포함합니다.
속성 컬렉션을 반환합니다.
2.1.6 nodeName
속성, 문서 유형, 요소, 엔터티 또는 표기법 노드에 대한 정규화된 이름을 반환합니다.
다른 모든 노드 유형에 대해 고정된 문자열을 반환합니다.
노드 이름입니다.
"Name" 노드의 nodeName은 "Name"이고 "book" 노드의 nodeName은 "book"입니다.
2.1.7 documentElement
문서의 루트 요소를 포함합니다
xml 루트 노드
위의 xml의 루트 노드는 "book"입니다.
2.1.8 nextSibling
부모의 하위 목록에 있는 노드의 다음 형제 노드를 포함합니다.
다음 형제 노드입니다. , 읽기 전용
2.1.9 childNodes
하위 노드를 포함하는 노드 목록을 포함합니다.
모든 하위 노드.
2.1.10 firstChild
노드의 첫 번째 하위 노드를 포함
첫 번째 하위 노드
2.1.11 lastChild
마지막 하위 노드 반환
마지막 하위 노드
2.2 메소드
2.2.1 loadXML
제공된 문자열을 사용하여 XML 문서를 로드합니다.
2.2.2 로드
지정된 위치에서 XML 문서를 로드합니다.
매개변수의 경로는 서버 측이고 상대 경로입니다
2.2.3 selectSingleNode
지정된 패턴 일치 작업을 이 노드의 컨텍스트에 적용하고 첫 번째로 일치하는 노드를 반환합니다.
첫 번째로 일치하는 항목을 반환합니다.
2.2.4 selectNodes
적용 지정된 패턴 일치 작업을 이 노드의 컨텍스트에 적용하고 일치하는 노드 목록을 IXMLDOMNodeList
조건을 충족하는 모든 항목으로 반환합니다.
2.2.5 getElementsByTagName
지정된 이름을 가진 요소 컬렉션을 반환합니다.
요소 이름과 일치하는 노드 컬렉션을 반환합니다.
2.2.6 hasChildNodes
노드에 하위 노드가 있음
하위 노드가 포함되어 있는지 확인
반환 값은 부울 값입니다.
3. 예
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0");
xmlDoc.async =
xmlDoc.load("test\test1.xml")
if (xmlDoc .parseError.errorCode!=0)
{
var error = xmlDoc.parseError;
Alert(error.reason)
return;
}
var root = xmlDoc.documentElement; //루트 노드
Form1.test1.value = root.xml;
/*결과는 다음과 같습니다.
c 2012*/
Form1.test1.value = root.nodeName; //결과는 "book"입니다.
var att = root.attributes; //이 시점에서 모든 속성 세트를 가져옵니다.
var str = ""
for (var i=0; i{
str = att.item(i).nodeName ":" att.item(i).text;
}
Form1.test1.value = str; 따라서 결과는 "level: 1 ”
var fNode;
var lNode;
var nextSibling;
fNode = root.firstChild; //첫 번째 하위 노드 이름
lNode = root.lastChild입니다. ; //마지막 자식 노드 정보
nextSibling = fNode.nextSibling; //첫 번째 자식 노드 Name의 다음 형제 노드, 즉 Price
str = fNode.nodeName ":" fNode.text; 결과: "Name:c "
str = lNode.nodeName ":" lNode.text; //결과: "info:2"
str = nextSibling.nodeName ":" nextSibling.text; 결과는 다음과 같습니다. "Price:20 "
var nodeList;
str = "";
nodeList = xmlDoc.selectNodes("//info") //요소 이름이 "info"인 노드를 찾습니다. "
for (var j= 0; j{
var infoNode = nodeList.item(j);
var cldNodes = infoNode .childNodes; //정보 노드 노드 세트의 하위
for (var k=0; k{
str = cldNodes.item(k).nodeName ":" cldNodes.item(k).text " " ;
}
//결과 "k:1 k:2 "
}
str = ""
sNode = xmlDoc.selectSingleNode("//info "); //첫 번째
찾기 var scldNodes = sNode.childNodes; //info 노드의 하위 노드 세트
for (var t=0; t { str = scldNodes.item(t).nodeName ":" scldNodes.item(t).text "
}
//결과 "k :1"
Form1.test1.value = str;

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.