2011-09-14 2 views
4

내가 코드의 다음 간단한 부분이 작동하지 않습니다getElementsByTagName은

String test = "<?xml version="1.0" encoding="UTF-8"?><TT_NET_Result><GUID>9145b1d3-4aa3-4797-b65f-9f5e00be1a30</GUID></TT_NET_Result>" 

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();   
Document doc = dbf.newDocumentBuilder().parse(new InputSource(new StringReader(test)));      
NodeList nl = doc.getDocumentElement().getElementsByTagName("TT_NET_Result"); 

문제는 내가 어떤 결과를 얻을 수 없다는 것입니다 - 노드 목록 변수를 "NL"비어 있습니다. 무엇이 잘못 될 수 있습니까?

답변

6

아래에 문서 요소가 필요하지만 TT_NET_Result 은 문서 요소 인입니다. 방금 전화하면

NodeList nl = doc.getElementsByTagName("TT_NET_Result"); 

내가 원하는 결과를 얻는다고 생각합니다.

+0

문제를 해결했습니다. – kaps

+0

감사합니다. 나는 전체적으로 간과 된 문서 요소입니다. – torosg

+0

이것은 나를 도왔습니다. 감사. – Alessandro

0

다음은이 이전 질문에 대한 또 다른 답변입니다. 오늘 코드에서 비슷한 문제가 발생했으며 실제로 XML을 항상 읽고 쓸 수있었습니다. 웬일인지 나는 1 개의 중요한 사실을 간과했다. 사용할 경우

NodeList elements = doc.getElementsByTagNameNS(namespace,elementName); 

네임 스페이스를 인식하는 팩토리로 문서를 구문 분석해야합니다.

private static DocumentBuilderFactory getFactory() { 
    if (factory == null){ 
     factory = DocumentBuilderFactory 
       .newInstance(); 
     factory.setNamespaceAware(true); 
    } 
    return factory; 
}