Привет всем У меня есть файл XML в Java, который держит 2d массив чисел он выглядит что-то вродеЧитайте XML файл Java
<tableNumbers>
<row id="0">
<column id="0"> 4 </column>
<column id="1"> 2 </column>
<column id="2"> 5 </column>
<column id="3"> 6 </column>
</row>
<row id="1">
<column id="0"> 5 </column>
<column id="1"> 10 </column>
<column id="2"> 7 </column>
<column id="3"> 9 </column>
</row>
</tableNumbers>
Теперь каждая строка в таблице имеет одинаковое количество colums и что я я пытаюсь выполнить цикл через xml и сохранить номер из файла XML в массив Integer. (Напр., Строка 0 столбец 0 будет храниться в цифрах [0] [0]
Код я в настоящее время является:
public static Integer[][] getNumbers(File file, int noRows, int noColums){
Integer[][] numbersArray = new Integer[noRows][noColumns];
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
try {
Document document = docBuilderFactory.newDocumentBuilder().parse(file);
Element rootElement = document.getDocumentElement();
NodeList rowList = rootElement.getElementsByTagName("row");
if ((rowList != null))
for (int i = 0; i < rowList.getLength(); i++) {
NodeList columnsList = rowList.item(i).getChildNodes();
if ((columnsList != null))
for (int j = 0; j < columnsList.getLength(); j++) {
Element number = (Element) columnsList.item(j);
System.out.println("(" +i + "," + j + ") " + number.getNodeValue());
numbersArray[i][j] = number.getNodeValue();
}
}
return numbersArray;
}
catch (Exception c){}
return null;
}
Несколько строк из стандартного выхода являются:
(0,0) null
(0,1) null
(0,2) null
(0,3) null
(1,0) null
(1,1) null
(1,2) null
(1,3) null
значение, которое возвращается из всех клеток null
. Я знаю, что ошибка чтения из файла XML. Если кто-то может показать мне, где я неправильно, я был бы весьма признателен
Unrelated комментарий: Вы не нуждаетесь в '&& (rowList.getLength()> 0 ', а' && (columnsList.getLength()> 0) 'условия: если GetLength 0 петля выиграл» t12: – assylias
Спасибо, что изменил это, чтобы это отразить. –