大家好我在java中有一個XML文件,其中持有數字的二維數組,它看起來就像讀取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>
現在每行的表有相同數量的柱的側向承載力和我我試圖做的是循環通過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文件中讀取。如果有誰能夠告訴我在哪裏,我錯了,我將不勝感激
無關的評論:你不需要'&&(rowList.getLength()> 0'和'&&(columnsList.getLength()> 0)'條件:如果是的getLength 0環奪得」 t運行反正 – assylias 2012-04-26 08:59:40
感謝修改上面的反映 – 2012-04-26 09:04:12