개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.10 08:03

DOMNamedNodeMap::getIterator 관련 질문

목록
  • 엘라스틱서치광 23시간 전 2025.08.10 08:03 새글
  • 6
    1
제가 공부하고 있는 DOMNamedNodeMap 클래스에서 getIterator 메서드를 사용하여 노드맵의 항목을 반복자로 접근하는 방법을 배웠습니다. 하지만, 반복자로 접근했을 때 노드의 순서가 유지되는지 궁금합니다. 노드의 순서가 유지되는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  23시간 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 43,175건 / 2 페이지

검색

게시물 검색