2010-12-14 89 views
0

不知何故解析的XML文件似乎是錯誤的或者我做錯了什麼?Java:已解析的XML,但有些東西丟失

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
<root> 
    <quests> 
     <quest id="test"> 
      <question>Just a little sentence.</question> 
     </quest> 
    </quests> 
</root> 

我分析它像:

File file = new File("file.xml"); 

DocumentBuilderFactory dF = DocumentBuilderFactory.newInstance(); 
dF.setNamespaceAware(true); 
DocumentBuilder dB = dF.newDocumentBuilder(); 

Document XML = dB.parse(file); 

// ------------------------------------------ 
Element doc = XML.getDocumentElement(); 
System.out.println(doc.getChildNodes()); 

Element dx = (Element) doc.getElementsByTagName("quest").item(0); 
System.out.println(dx.getAttribute("id")); 
System.out.println(dx.getAttribute("id").length()); 
System.out.println(dx.getAttributes().getLength()); 

而這就是我得到:

[root: null] 

0 
0 

怎麼可能?我如何解析元素/標籤/節點的屬性?

回答

0

我剛剛創建了一個新的XML文件,它的工作原理! 我認爲這個問題是也許ID 這將導致錯誤內的隱藏字符...

3

奇怪我只是複製粘貼你的代碼,這是我得到的輸出

[root: null] 
test 
4 
1 

所有我能看到錯的是你應該做doc.getTagName()但這只是次要的......

java version "1.6.0_21"

+0

'doc.getTagName()''回報和quest'我有'的Java版本 「1.6.0_12」'' – Poru 2010-12-14 22:06:46

0

我覺得有一個getNodeValue()或getTextContent()缺失,以獲得實際屬性字符串。

+0

getNodeValue ()'返回'null'和'getTextContent()'返回空白與'只是一個小句子.'裏面... – Poru 2010-12-14 22:08:03

+0

你試過用getAttributes()輸出所有的屬性嗎?但是,我完全處於黑暗中,因爲你的榜樣應該運行。 – Jules 2010-12-14 23:43:33