0

http://puu.sh/52XYZ/6533d7013f.png

上記は、Java で解析しようとしている XML です。

要素の属性を指定するのに問題があります。

たとえば、latitudeandlongitudeは の属性pointですね。それを特定することはできません。

これが私がこれまでに持っているものです:

try {
            File newXMLFile = new File("H:\\520\\SOAP Data Acquisition\\testNOAA.xml");
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(newXMLFile);

            doc.getDocumentElement().normalize();

            System.out.println("Title: " + doc.getElementsByTagName("title").item(0).getTextContent());
            System.out.println("Field: " + doc.getElementsByTagName("field").item(0).getTextContent());
            System.out.println("category: " + doc.getElementsByTagName("category").item(0).getTextContent());
            System.out.println("Date Created: " + doc.getElementsByTagName("creation-date").item(0).getTextContent());

            NodeList nList = doc.getElementsByTagName("data");

            for(int i = 0; i < nList.getLength(); i++){
                Node nNode = nList.item(i);
                System.out.println("\nCurrent Element: " + nNode.getNodeName());
                if(nNode.getNodeType() == Node.ELEMENT_NODE){
                    Element eElement = (Element) nNode;

                    // System.out.println("Location: " + eElement.getElementsByTagName("location").getElementsByTagName("point").getAttribute("latitude"));

                    System.out.println("Time: " + eElement.getElementsByTagName("time-layout").item(0).getTextContent()); // get first child
                    System.out.println("Start Time: " + eElement.getElementsByTagName("start-valid-time").item(0).getTextContent());
                    System.out.println("End Time: " + eElement.getElementsByTagName("end-valid-time").item(0).getTextContent());

                    System.out.println("Type: "+eElement.getAttribute(""));
                    System.out.println(eElement.getElementsByTagName("name").item(0).getTextContent() + ": " + eElement.getElementsByTagName("value").item(0).getTextContent());
                    System.out.println(eElement.getElementsByTagName("name").item(1).getTextContent() + ": " + eElement.getElementsByTagName("value").item(1).getTextContent());
                }
            }
        }catch(Exception e){
            e.printStackTrace();
        }
4

1 に答える 1

0

はい、属性です。アクセスは簡単です

 String latitude = eElement.getElementsByTagName("point").item(0).getAttributes().getNamedItem("latitude").toString();

XPATH を使用して要素にアクセスすることもできます。

//data/location/point/@latitude

サポートが必要な場合はお知らせください

あなたが探しているものですか、それとも私はあなたの問題を理解していませんでしたか?

于 2013-10-29T17:45:00.260 に答える