Вот мой 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, которую вы считали? В любом случае вы должны проверить длину своего 'NodeList' перед вызовом' nl.item (0) '. Очевидно, что в вашем случае длина равна 0. Если вы создаете независимый тестовый проект только с этими фрагментами кода, вы все равно получите длину 0? – vanje