엘리먼트 노드의 속성 프로퍼티는 속성 노드의 리스트를 반환한다.
속성 노드의 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
| ← 이전 | 홈 | 다음 → |