2014-04-23 5 views
0

나는이 상황을 여기에서 생각해 냈다. 나는 그것을 다룰 수 없다. 이걸 좀 도와 주실 수 있습니까?getElementsByTagName의 getTextContent가 null입니다. 어떻게 다루는가?

감사

그래서 나는 구문 분석하고 해시 맵에 태그의 값을 넣어야하는이 같은 XML 파일이 있습니다. 그 XML 파일에서 나는 항상 이름 태그를 가지고 있지 않습니다.

<data> 
<entry> 
    <id>1</id> 
    <name>Name1</name> 
</entry> 
<entry> 
    <id>2</id> 
</entry> 
<entry> 
    <id>3</id> 
    <name>Name3</name> 
</entry> 
</data> 

그리고 이것은 내가 구문 분석 및 해시 맵에 데이터를 넣어 사용하는 코드입니다

public Map idName = new HashMap(); 

................... 
public Map parseResponse(int number) { 
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder builder; 
    InputSource is; 
    try { 
     builder = factory.newDocumentBuilder(); 
     is = new InputSource(new StringReader(response1)); 
     Document doc = builder.parse(is); 
     NodeList list = doc.getElementsByTagName("id"); 
     NodeList list2 = doc.getElementsByTagName("name"); 

     for(int i = 0; i< number; i ++){ 
      id = String.valueOf(list.item(i).getTextContent()); 
      name = String.valueOf(list2.item(i).getTextContent()); 
      idName.put(id, name); 
    } 
    return idName; 
    } 

는 해당 태그가없는 2에 올 때 그래서이 코드에 문제가 예외가 발생하고 프로그램이 종료되었습니다.

어떻게하면이 사건을 처리 할 수 ​​있고 태그에 대한 가치가 없다면 그에 해당하는 '기본값'을 넣을 수 있다고 가정 해 봅시다.

희망 사항은 분명합니다. 설명이 명확하지 않은 경우 알려주십시오.

감사합니다.

답변

0

직접 문제를 해결할 수있었습니다.

for(int i = 0; i< number; i ++){ 
      if(null!=list.item(i)){ 
       id = String.valueOf(list.item(i).getTextContent()); 
      } else { 
       id = "default id" 
      } 
      name(null!=list2.item(i)){ 
       name = String.valueOf(list2.item(i).getTextContent()); 
      } else { 
       name = "default name" 
      } 
      idName.put(id, name); 
:

는 그래서 루프 난 그냥 다음 수행에 관해서

관련 문제