
DOMNamedNodeMap 클래스의 getIterator 메서드는 노드맵의 항목을 반복자로 접근할 수 있도록 해줍니다. 이 반복자는 노드의 순서를 유지하는 반복자입니다. 따라서, 노드의 순서가 유지되는 것입니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
java
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class Main {
public static void main(String[] args) {
// 노드맵 생성
NamedNodeMap nodeMap = new NamedNodeMap() {
@Override
public Node item(int index) {
return null;
}
@Override
public Node getNamedItem(String name) {
return null;
}
@Override
public Node setNamedItem(Node item) {
return null;
}
@Override
public Node removeNamedItem(String name) {
return null;
}
@Override
public Node removeNamedItemNS(String namespaceURI, String localName) {
return null;
}
@Override
public NodeList getNodes() {
return null;
}
@Override
public int getLength() {
return 0;
}
@Override
public String getNamespaceURI() {
return null;
}
@Override
public String getPrefix() {
return null;
}
@Override
public String getLocalName() {
return null;
}
};
// 노드맵에 항목 추가
nodeMap.setNamedItem(new Node() {
@Override
public String getNodeName() {
return "node1";
}
@Override
public String getNodeValue() {
return "value1";
}
@Override
public short getNodeType() {
return Node.ELEMENT_NODE;
}
@Override
public Node getParentNode() {
return null;
}
@Override
public NodeList getChildNodes() {
return null;
}
@Override
public Node getFirstChild() {
return null;
}
@Override
public Node getLastChild() {
return null;
}
@Override
public Node getPreviousSibling() {
return null;
}
@Override
public Node getNextSibling() {
return null;
}
@Override
public String getAttribute(String name) {
return null;
}
@Override
public void setAttribute(String name, String value) {
}
@Override
public void removeAttribute(String name) {
}
@Override
public String getTagName() {
return null;
}
@Override
public String getAttributeNS(String namespaceURI, String localName) {
return null;
}
@Override
public void setAttributeNS(String namespaceURI, String qualifiedName, String value) {
}
@Override
public void removeAttributeNS(String namespaceURI, String localName) {
}
@Override
public boolean hasAttribute(String name) {
return false;
}
@Override
public boolean hasAttributeNS(String namespaceURI, String localName) {
return false;
}
@Override
public String getAttributeNode(String name) {
return null;
}
@Override
public Node setAttributeNode(Node newNode) {
return null;
}
@Override
public Node removeAttributeNode(Node oldAttr) {
return null;
}
@Override
public boolean hasAttributes() {
return false;
}
});
// 노드맵의 항목을 반복자로 접근
java.util.Iterator iterator = nodeMap.getIterator();
while (iterator.hasNext()) {
Node node = iterator.next();
System.out.println(node.getNodeName());
}
}
}
위 코드에서, 노드맵의 항목을 반복자로 접근했을 때, 노드의 순서가 유지되는 것을 확인할 수 있습니다.
2025-08-10 08:04