2011-09-14 11 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

ありがとうございます。私はtotaly見落とされたドキュメント要素。 – torosg

+0

これは私を助けた。ありがとう。 – Alessandro

0

この古い質問に対する別の回答があります。今日私のコードでも同様の問題が発生しました。実際にXMLを常に読み書きしています。何らかの理由で私は一つの大きな事実を見落としました。使用する場合

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

名前空間を認識するファクトリでドキュメントを解析する必要があります。

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