【发布时间】:2011-07-04 23:46:59
【问题描述】:
我在从 XML 读取数据并将其加载到数组中时遇到了一些问题。这是我的代码:
private void LoadMap(String path) { DocumentBuilderFactory 工厂 = DocumentBuilderFactory.newInstance ( ); 文档document = null;
try {
DocumentBuilderFactory builder = DocumentBuilderFactory.newInstance();
builder.setIgnoringElementContentWhitespace(true);
document = builder.newDocumentBuilder().parse(path);
Element Map = document.getDocumentElement();
Node nodeTileset = Map.getElementsByTagName("tileset").item(0);
Node nodeData = Map.getElementsByTagName("data").item(0);
NamedNodeMap attribTileset = nodeTileset.getAttributes();
layers = Integer.parseInt(attribTileset.getNamedItem("layers").getNodeValue());
width = 50;
height = 50;
name = Map.getAttribute("name");
// Creamos el array y lo rellenamos con los valores
array = new int[layers][height][width];
Node layer, row, column;
for(int i = 0; i < layers; i++) {
layer = nodeData.getChildNodes().item(i);
for(int j = 0; j < height; j++) {
if(layer.getNodeType() != Node.TEXT_NODE) {
row = layer.getChildNodes().item(j);
for(int k = 0; k < width; k++) {
if(row.getNodeType() != Node.TEXT_NODE) {
column = row.getChildNodes().item(k);
if(column.getNodeType() != Node.TEXT_NODE) {
array[i][j][k] = Integer.parseInt(column.getTextContent());
}
}
}
}
}
}
}
catch(ParserConfigurationException e) {
e.printStackTrace();
}
catch (SAXException e) {
e.printStackTrace();
}
catch(IOException e) {
e.printStackTrace();
}
}
【问题讨论】:
标签: java xml multidimensional-array