2010-12-14 82 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