0
這裏是我的xml文件:Java的DOM解析器錯誤
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Server SYSTEM "Server.dtd">
<Server>
<MaximumUserNumber>2</MaximumUserNumber>
<ServerPortNumber>1234</ServerPortNumber>
<MessagesQueueSize>5</MessagesQueueSize>
</Server>
這裏是我的Server.dtd:
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT Server
(MaximumUserNumber,
ServerPortNumber,
MessagesQueueSize)>
<!ELEMENT MaximumUserNumber (#PCDATA)>
<!ELEMENT ServerPortNumber (#PCDATA)>
<!ELEMENT MessagesQueueSize (#PCDATA)>
這裏是我的代碼,這給了我一個NullPointerException:
public Server() {
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setValidating(true);
Document document = dbf.newDocumentBuilder().parse("config.xml");
document.normalizeDocument();
NodeList nl = document.getElementsByTagName("MaximumUserNumber");
nl.item(0); // this line causes exception
}
}
我做錯了什麼?謝謝!
我用Java 6試過了你的代碼,它沒有任何異常。你使用哪個Java版本?你應該重新檢查你的代碼實際處理的'config.xml'是否真的是預期的版本。你確定,你的文檔是否符合你認爲的DTD版本?無論如何,你應該在調用'nl.item(0)'之前檢查'NodeList'的長度。很明顯,在你的情況下,長度是0.如果你只用這些代碼片段創建一個獨立的測試項目,你仍然得到長度爲0? – vanje