我一直在尝试找到一种从 Java 中的 XML 文件中读取特定数据的方法。我正在使用 DOM 和 SAX。
我正在制作一个方法readLayoutFile(String areaName),程序将返回以下变量:varChecked,varGeo[][]用于请求的区域。
我的问题是如何指定我想要的值checked,比如说,Triangle1。另外,如何调用geometriesTriangle1 下的所有坐标?
提前致谢。/克里斯。
编辑:到目前为止,我只设法读取了整个 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();
        }