Документ, показывающий null при синтаксическом анализе с помощью xml

Я получаю сообщение об ошибке при синтаксическом анализе документа. Показывает пустой документ

Error:[Request processing failed; nested exception java.lang.NullPointerException] with root cause java.lang.NullPointerException

String subBuildFile = "E:\Data Sync 4.4\WEB-INF\Temp_Project\Project_3";
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new InputSource(subBuildFile));
Node s = doc.getElementsByTagName("userList").item(1);
for(int i =2; i < doc.getElementsByTagName("user").getLength(); i++) {
    doc.getElementsByTagName("userList").item(i)
        .removeChild(doc.getElementsByTagName("userList").item(i));
}

я пробовал: DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance (); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder (); Документ doc = dBuilder.parse (новый InputSource (subBuildFile)); Узел s = doc.getElementsByTagName ("userList"). Item (1); for (int i = 2; i <doc.getElementsByTagName ("user"). getLength (); i ++) {doc.getElementsByTagName ("userList"). item (i) .removeChild (doc‌ .getElementsByTagNam‌ e ("userList ") .item (i‌)); }

mukta 25.10.2018 14:17

отображается: [Ошибка обработки запроса; вложенное исключение - java.lang.NullPointerException] с основной причиной java.lang.NullPointerException

mukta 25.10.2018 14:17

Извините, но проблема с вашим вопросом заключается в том, что вы показываете код null, только Exception ... Пожалуйста, добавьте свой код, который выдает этот Exception.

deHaar 25.10.2018 14:23

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance (); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder (); Документ doc = dBuilder.parse (новый InputSource (subBuildFile)); Узел s = doc.getElementsByTagName ("userList"). Item (1); for (int i = 2; i <doc.getElementsByTagName ("user"). getLength (); i ++) {doc.getElementsByTagName ("userList"). item (i) .removeChild (doc‌ .getElementsByTagNam‌ e ("userList ") .item (i‌)); }

mukta 25.10.2018 14:30

в строке subBuildFile = "E: \ Data Sync 4.4 \ WEB-INF \ Temp_Project \ Project_3"

mukta 25.10.2018 14:31

На что указывает исключение нулевого указателя? Итак, мы можем определить, что является нулевым.

xtratic 25.10.2018 14:50

Пожалуйста, не используйте комментарии, чтобы расширить свой вопрос: редактировать ваш вопрос, чтобы добавить подробности.

Mark Rotteveel 25.10.2018 15:19

@MarkRotteveel Я не думаю, что это дубликат NPE. OP по крайней мере знал, что Document был нулевым и вызывает NPE, но просто не был уверен, что ПочемуDocument был нулевым.

xtratic 25.10.2018 15:35

@xtratic Учитывая текущее состояние вопроса, это неочевидно и не совсем актуально. В качестве альтернативы я бы выбрал «неясно, о чем вы спрашиваете» или «нуждается в MCVE» в качестве веской причины. Если вопрос отредактирован в форме со всей соответствующей информацией в вопросе, то можно рассмотреть возможность повторного открытия.

Mark Rotteveel 25.10.2018 15:37

Ах да, мои правки еще не прошли. Я скопировал код в комментарии к вопросу. Но, по крайней мере, его первоначальное утверждение «он показывает нулевой документ» показывает, что OP, по крайней мере, знает, что какие имеет значение NULL.

xtratic 25.10.2018 15:38

Без полного исключения с трассировкой стека и документа трудно сказать, в чем проблема.

Emmanuel 25.10.2018 19:16
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
11
136
1

Ответы 1

Ваша проблема в том, что вы неправильно используете InputSource.

Вы вызываете new InputSource(String), и этот конструктор говорит следующее:

/**
 * Create a new input source with a system identifier.
 * ...
 * If the system identifier is a URL, it must be fully
 * resolved (it may not be a relative URL).
 *
 * @param systemId The system identifier (URI).
 */
 public InputSource (String systemId){...}

Вместо этого используйте этот конструктор:

/** Create a new input source with a character stream. */
public InputSource (Reader characterStream) { ... }

И используйте это так:

Document doc = dBuilder.parse(new InputSource(new StringReader(subBuildFile)));

теперь он показывает: 1: 1: Контент не разрешен в прологе.

mukta 25.10.2018 15:01

Пожалуйста, примите этот ответ, поскольку он отвечал на ваш исходный вопрос, а я могу помочь с остальным. Мне нужно посмотреть, как выглядит содержимое файла.

xtratic 25.10.2018 15:05

Другие вопросы по теме