Я анализирую некоторые данные из 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">
Список узлов узла "program" обрабатывается правильно, как это:
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);
Затем, когда я получаю первый элемент "identProgram" в элементе "program", он работает нормально, как это, и ямогу подобрать атрибуты в строку:
// 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);
Как указанокод, используемый для получения идентПрограммы и fbdSource, одинаков.Они находятся на одном уровне в XML.Не уверен, что может вызвать это.
Спасибо