2011-11-29 5 views
-1

나는 프로그램의 다른 부분에서 가져온 노드를 NodeList에 삽입하려고합니다.For 루프 오류

static void NodeCheck(Node node) 
{ 

    NodeList NodeArray = null; 
    for(int i=0;NodeArray.getLength()<=i;i++) 
    { 
     NodeArray.item(i)=node; 
    } 
} 

여기서 NetBeans는 내가 여기에 가치가없는 변수가 필요하다는 오류를 제공합니다. 해결책은 무엇입니까?

편집 : 좋아 ,,,,이

NodeList NodeArray = null; 

     NodeArray.item(0)=node; 

에 변화가 더 반복하고 여전히 같은 오류가없는

편집 NO.2을 보자 내 질문이 더 명확하게하자, 어떻게 나는 배열과 같은 것으로 노드 (단일 노드)를 삽입합니까? 개미 생각? 이 작업을 수행하는 이유는 이들을 서로 비교하여 동일하거나 다른 날씨를 확인하는 것입니다.

+3

우선 널 값으로 메소드를 호출하고 있습니다. – Ger

+0

'NodeArray.item (i) = node'? –

+0

해결책은 일부 책을 읽었을 수 있습니다. 이 코드는 NodeArray가 초기화 된 경우에도 의미가 없습니다. –

답변

2

이 줄은 NodeArray를 null로 설정합니다. 당신이 null이 NodeArray의 메소드를 호출하려고하는 다음 행에서

NodeList `NodeArray` = null; 

이 작동하지 않을 수 있습니다.

NodeArray.getLength() 

당신은 null 이외의 값으로 제대로 NodeArray를 초기화해야합니다.

+0

코드가 컴파일되지 않아 런타임 NPE도 던지지 않습니다. –

0

org.w3c.dom.NodeList에 삽입 할 수 없습니다. 적절한 요소 방법을 사용하십시오. org.w3c.dom.Node#appendChild.

0

NodeArray가 length() 메소드를 호출 할 때 null이기 때문에 nullPointerException 일 수 있습니다.

0

난 당신이 첫 번째 문제는 NodeArray가 null 있다는 것을 생각하고, 당신이 널 (null) 요소의 속성에 대한 액세스를 기운 다 ... 이런 식으로 일을하려고 :

NodeList NodeArray = new NodeList(); 
+0

org.w3c.dom.NodeList는 인터페이스입니다. 코드가 작동하지 않습니다. – flash

+0

오, 나는 그가 자신의 Class를 NodeList라고 불렀다 고 생각했다. (import 문은 없었다.) ... 그가 인터페이스를 사용하고 있다면 ... 문제가 다르다 ... –

0

를 당신은 할당해야 "nodeArray", 또한 "NodeArray.getLength()"행에서 NullPointerException을 얻습니다. 변수 및 함수 이름을 소문자로 시작하는 것이 좋습니다 (규칙에 따라). 당신이 거기에 아무것도 당신이 그것을 반복하는 경우

static Node rootNode; 
static void nodeCheck(Node node) 
{ 
    NodeList nodeArray = rootNode.getChildNodes(); // if rootNode==null -> NullPointerException 
    for(int i=0;nodeArray.getLength()<=i;i++) // if nodeArray==null -> NullPointerException 
    { 
     //replace child of rootNode by node 
     rootNode.replaceChild(node,nodeArray.item(i));   
    } 
    //add child to rootNode 
    rootNode.appendChild(node); 
} 

안부, 줄리앙

+0

1.'NodeList'는 인터페이스이다. 2.'nodeArray.item (i) = node'도 getter 메소드이기 때문에 작동하지 않습니다. – flash

+0

감사합니다 @ 플래시, 인터페이스를 모르겠다, 그냥 NullPointerException 볼 수 있습니다. 나는 내 대답을 바로 잡는다. –

0

, 그것은 널 포인터를 발생합니다.

NodeList은 반복하기 전에 초기화해야합니다.

0

NodeList.item (i)을 사용하여 값을 할당 할 수 없습니다. 오히려이 목적을 위해 적절한 컨테이너를 사용하십시오. 자세한 내용은이 링크를 방문하십시오. Create XML document using nodeList