2011-10-21 2 views
0

그래서 나는이 XML 파일이 있습니다DOM의 요소에 액세스하는 방법은 무엇입니까?

내가 이해에서 그래서
<root> 
    <node> 
     <name>One</name> 
     <val>1</val> 
    </node> 
    <node> 
     <name>Two</name> 
     <val>2</val> 
    </node> 
    <node> 
     <name>Three</name> 
     <val>3</val> 
    </node> 
</root> 

, 내가 getElementsByName을 사용하여 노드의 목록을 얻을 필요가 모든 노드에 액세스하기 위해 ("노드");

이제 목록을 가져 오면 모든 하위 요소에 액세스 할 수 있습니까? 내가 제대로하고 있는지 확실하지 않습니다.

기본적으로 모든 노드 요소를 반복해야하며 각 요소에 대해 다른 함수를 호출하기 위해 이름과 값을 사용해야하므로 기본적으로 루프를 반복해야합니다.

답변

0

, 당신은 DOM 순회 API를 사용할 수 있습니다.

0

x가 노드 객체 인 경우 노드 x의 모든 하위 요소 목록을 제공하는 x.childNodes 속성을 사용할 수 있습니다. 그런 다음 y.nodeValue에 액세스 할 수 있습니다. 여기서 y는 노드의 값을 가져 오는 하위 노드입니다.

Document doc = ...; 
NodeIterator i = ((DocumentTraversal) doc).createNodeIterator(doc, 
NodeFilter.SHOW_ELEMENT, null, false); 
Element e = null; 
while ((e = (Element) i.nextNode()) != null) { 
    System.out.println(e.getTagName()); 
} 

자바 스크립트를 순회 API가 구현되는 경우 비슷한이 있어야합니다 자바에서 http://www.w3.org/TR/DOM-Level-2-Traversal-Range/traversal.html

,이 같은 일 woul : 가능하면

+0

그래서 x.childNodes를 사용하여 노드 목록을 얻은 다음 각 노드에 두 개의 필드가 있습니다. 필드 1과 필드 2에 직접 어떻게 액세스합니까? getElementByName을 사용할 수 있습니까? – antonpug

+0

x.childNodes는 노드 목록 즉 NodeList를 줄 것입니다. nl1 = x.getChildNodes(); n11.item (0)은 이름을, nl1.item (1)은 그 노드의 값을 줄 것입니다. – vikiiii

+0

DOM API를 참조해야합니다. http://download.oracle.com/javase/1.4.2/docs/api/org/w3c/dom/Node.html#getChildNodes() – vikiiii

관련 문제