我一直在尝试找到一种从 Java 中的 XML 文件中读取特定数据的方法。我正在使用 DOM 和 SAX。
我正在制作一个方法readLayoutFile(String areaName)
,程序将返回以下变量:varChecked
,varGeo[][]
用于请求的区域。
我的问题是如何指定我想要的值checked
,比如说,Triangle1。另外,如何调用geometries
Triangle1 下的所有坐标?
提前致谢。/克里斯。
编辑:到目前为止,我只设法读取了整个 XML 文件中的大部分数据,这与我真正想做的相去甚远:
try {
File fXmlFile = new File("C:\\Users/Chris/Desktop/layout1.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList areaList = doc.getElementsByTagName("area");
for (int i = 0; i < areaList.getLength(); i++) {
Node areaNode = areaList.item(i);
System.out.println();
if (areaNode.getNodeType() == Node.ELEMENT_NODE) {
Element areaElement = (Element) areaNode;
System.out.println("Area Name : " + areaElement.getAttribute("name"));
System.out.println("Checked : " + areaElement.getElementsByTagName("checked").item(0).getTextContent());
NodeList geoList = doc.getElementsByTagName("geometries");
for (int j = 0; j < geoList.getLength(); j++) {
NodeList geomList = doc.getElementsByTagName("geo");
Node geoNode = geomList.item(j);
if (geoNode.getNodeType() == Node.ELEMENT_NODE) {
Element geoElement = (Element) geoNode;
System.out.println("Geo Point " + (j+1) + ": " + geoElement.getAttribute("lat") + ", " + geoElement.getAttribute("long"));
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}