Я разбираю некоторые данные из XML, используя DOM в этом формате:
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes"?>
<FEFExchangeFile>
<program>
<identProgram name = "TestSection" type = "section" task = "MAST"></identProgram>
<FBDSource nbRows = "24" nbColumns = "36">
Список узлов узла "программа" правильно разбирается следующим образом:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(CodeFile);
NodeList programeNodeList= doc.getElementsByTagName("program");
Я получаю элемент "program" в цикле for из списка узлов, который также отлично работает, как показано ниже:
// Get the current program node element
Element programNode = (Element) programeNodeList.item(i);
Затем, когда я получаю первый элемент «идентПрограмма» в элементе «программа», он работает нормально вот так, и я могу взять атрибуты в строку:
// Get the IdentProgram node element from Program node
Element identProgramElement = (Element) programNode.getElementsByTagName("identProgram").item(0);
Но что меня поставило в тупик. В том же самом коде, что и выше, который я использую для получения "identProgram", я использую для получения следующего элемента после этого "fbdSource", но он дает мне исключение с нулевым указателем:
// Get the FbdSource element from Program node
Element fBDSourceElement = (Element) programNode.getElementsByTagName("FBDSource").item(0);
Как указано, код, используемый для получения identityProgram и fbdSource, одинаков. Они находятся на одном уровне в xml. Не уверен, что могло вызвать это.
Спасибо
пожалуйста, четко укажите содержимое XML и ошибку




Первый шаг - определить, какая ссылка -
null. К сожалению, мы не сможем сильно помочь без минимальный воспроизводимый пример и полной ошибки (трассировка стека).