엘리먼트 노드의 속성 프로퍼티는 속성 노드의 리스트를 반환한다.
속성 노드의 getNamedItem() 메서드는 속성 노드를 반환한다.
다음 예제를 보자.
var text="<person>"; text += "<name>name1</name>"; text += "<address street='street1' city='city1'>address1</address>"; text += "<phone>phone1</phone>"; text += "</person>"; if (window.DOMParser) { parser=new DOMParser(); xmlDoc=parser.parseFromString(text,"text/xml"); } else // 인터넷 익스플로러 { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.loadXML(text); } var list = xmlDoc.getElementsByTagName('address')[0].attributes; console.log("attributes length = " + list.length); console.log(list.getNamedItem("street").nodeName + ": " + list.getNamedItem("street").nodeValue); console.log(list.getNamedItem("city").nodeName + ": " + list.getNamedItem("city").nodeValue);
위 코드를 실행한 결과는 다음과 같다.
attributes length = 2 street: street1 city: city1
getAttribute() 메서드는 속성 값을 반환한다.
setAttribute() 메서드는 기존 속성의 값을 변경하거나 새 속성을 만들어낸다.
다음 예제를 보자.
var text="<person>"; text += "<name>name1</name>"; text += "<address street='street1' city='city1'>address1</address>"; text += "<phone>phone1</phone>"; text += "</person>"; if (window.DOMParser) { parser=new DOMParser(); xmlDoc=parser.parseFromString(text,"text/xml"); } else // 인터넷 익스플로러 { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.loadXML(text); } var addressNode = xmlDoc.getElementsByTagName('address')[0]; console.log("Before : " + addressNode.getAttribute('city')); addressNode.setAttribute('city', 'city2'); console.log("After : " + addressNode.getAttribute('city'));
Before : city1 After : city2
getAttributeNode() 메서드는 속성 노드를 반환한다. nodeValue 프로퍼티를 이용하면 속성 노드의 값을 구해서 변경할 수 있다.
다음 예제를 보자.
var text="<person>"; text += "<name>name1</name>"; text += "<address street='street1' city='city1'>address1</address>"; text += "<phone>phone1</phone>"; text += "</person>"; if (window.DOMParser) { parser=new DOMParser(); xmlDoc=parser.parseFromString(text,"text/xml"); } else // 인터넷 익스플로러 { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.loadXML(text); } var cityNode = xmlDoc.getElementsByTagName('address')[0].getAttributeNode('city'); console.log("Before: " + cityNode.nodeValue); cityNode.nodeValue = 'city3'; console.log("After: " + cityNode.nodeValue);
위 코드를 실행한 결과는 다음과 같다.
Before : city1 After : city3
← 이전 | 홈 | 다음 → |