캐 시 org.w3c.dom.Element 형식,다른 doc 요 소 를 어떻게 사용 합 니까?

1676 단어 xml
오늘 은 xml 메시지 의 머리 를 캐 시 합 니 다.지난번 에 생 성 된 doc 의 Element 요 소 를 메모리 에 직접 저장 한 것 은 처음 입 니 다.다음 에 메모리 에서 꺼 낸 Element 요 소 는 null 입 니 다.
(코드 는 직접 사용 할 수 없고 원 리 를 설명 하 는 용도 로 만 사용)
캐 시 코드
hmmeta.put(dataset.getDataSetName(),
                           new Meta((Element)ele, dataFields, newSql.toString()));

 사용 코드
 
this.fields=hmmeta.get(dsname).getFields();

 발 견 된 fields 는 null 입 니 다.
 
다음 방법 을 시도 해 보 세 요.
캐 시 코드
hmmeta.put(dataset.getDataSetName(),
                           new Meta((NodeList)ele.getElementsByTagName("FIELD"), dataFields, newSql.toString()));

 인 용 된 코드
 
NodeList fields = (NodeList)hmmeta.get(dsname).getNodeList();
for(int i=0;i<fields.getLength();i++){
      this.fields.appendChild(fields.item(i));
    }

 결과 이상
WRONG_DOCUMENT_ERR:   That   node   doesn't   belong   in   t   
  his   document.  

 다른 doc 요 소 를 사용 할 수 없다 는 뜻 입 니 다.
 
인터넷 에서 검색 하면 다음 과 같은 해결 방법 을 얻 을 수 있다.
캐 시 코드
hmmeta.put(dataset.getDataSetName(),
                           new Meta((NodeList)ele.getElementsByTagName("FIELD"), dataFields, newSql.toString()));

 캐 시 데이터 사용
NodeList fields = (NodeList)hmmeta.get(dsname).getNodeList();
for(int i=0;i<fields.getLength();i++){
      this.fields.appendChild(outdoc.importNode(fields.item(i),true));
    }

 여러분 에 게 더 좋 은 방법 이 있 을 지 모 르 겠 습 니 다.

좋은 웹페이지 즐겨찾기