Java:解析XML但缺少一些东西

时间:2010-12-14 21:30:41

标签: java xml

不知何故,解析后的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

怎么可能?我如何解析元素/标签/节点的属性?

3 个答案:

答案 0 :(得分:3)

很奇怪我只是复制粘贴你的代码,这就是我得到的输出

[root: null]
test
4
1

我所能看到的错误就是你应该做doc.getTagName()但这只是次要的......

java version "1.6.0_21"

答案 1 :(得分:0)

我认为缺少getNodeValue()或getTextContent()来获取实际的属性字符串。

答案 2 :(得分:0)

我刚刚创建了一个新的XML文件,并且它可以正常工作! 我认为问题可能是id中隐藏的角色 这会导致错误......