【发布时间】:2015-07-31 16:55:44
【问题描述】:
我正在尝试将 xml 文件名传递给函数 (getAllXmlData) 并提取其数据并将它们存储在多维数组中,并通过 xmlArray 将 xml 数据返回给第一类。我有以下代码:
public class Utils {
static String[][] getAllXmlData(String strIn1) {
File file = new File(strIn1);
try {
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(file);
NodeList nodes = doc.getElementsByTagName("person");
System.out.println("Total of elements : " + nodes.getLength());
String xmlArray[][] = new String[nodes.getLength()][12];
for (int i = 0; i < nodes.getLength(); i++) {
Element element = (Element) nodes.item(i);
NodeList recordID = element.getElementsByTagName("RecordID");
Element line = (Element) recordID.item(0);
xmlArray[i][1] = line.getFirstChild().getTextContent();
xmlArray[i][2] = line.getAttribute("id");
NodeList lastName = element.getElementsByTagName("LastName");
line = (Element) lastName.item(0);
xmlArray[i][3] = line.getFirstChild().getTextContent();
NodeList firstName = element.getElementsByTagName("FirstName");
line = (Element) firstName.item(0);
xmlArray[i][4] = line.getFirstChild().getTextContent();
NodeList title = element.getElementsByTagName("Title");
line = (Element) title.item(0);
xmlArray[i][5] = line.getFirstChild().getTextContent();
NodeList hobby = element.getElementsByTagName("Hobby");
line = (Element) hobby.item(0);
xmlArray[i][6] = line.getFirstChild().getTextContent();
NodeList phone1 = element.getElementsByTagName("CellPhone");
line = (Element) phone1.item(0);
xmlArray[i][7] = line.getFirstChild().getTextContent();
}
} catch (Exception e) {
e.printStackTrace();
}
return xmlArray;
}
}
但出现以下错误:
Utils.java:54: error: cannot find symbol
return xmlArray;
symbol: vailable xmlArray
location: class Utils
我感谢任何帮助。此外,如果有更有效和动态的方式将 xml 数据存储在数组中,而不必逐个元素地进行。 谢谢
【问题讨论】:
-
声明在 try catch 块内。该范围之外的任何东西都无法访问它。
标签: java arrays xml multidimensional-array return