Java - Parsen von xml mit DOM

Ich versuche, die folgenden xml. Ich kann auf die Wochennummer leicht aber nicht auf die Kinder für EmployeeRatesLevelA und EmployeeRatesLevelB. Das Ziel ist, speichern Sie diese, um eine Klasse Datensatz mit Feldern Wochennummer und ArrayLists, EmployeeRatesLevelA und EmployeeRatesLevelB.
Danke.

<DataSet ActiveFrom="2011/04/06">  
    <WeekNumber>8</WeekNumber>  
    <EmployeeRatesLevelA>  
        <Rate>0</Rate>  
        <Rate>0.12</Rate>  
    </EmployeeRatesLevelA>  
    <EmployeeRatesLevelB>  
        <Rate>0.15</Rate>  
        <Rate>0.20</Rate>  
    </EmployeeRatesLevelB>  
</DataSet>  


    Document doc = loadXml("data.xml");  
    NodeList nodeList = doc.getElementsByTagName("DataSet");  
    for (int i = 0; i < nodeList.getLength(); i++) {  
        Node node = nodeList.item(i);  
        if (node.getNodeType() == Node.ELEMENT_NODE) {  
            Element element = (Element) node;  
            NodeList weekNumberList = element.getElementsByTagName("WeekNumber");  
            Element weekElement = (Element) weekNumberList.item(0);  
            NodeList textElementList = weekElement.getChildNodes();
            System.out.println("Weeknumber:"+ ((Node)textElementList.item(0)).getNodeValue().trim());
    }

    public static Document loadXml(String file) {
        try {
           return (DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(file)));
        } catch (SAXException e) {
        e.printStackTrace();
        } catch (IOException e) {
        e.printStackTrace();
        } catch (ParserConfigurationException e) {
        e.printStackTrace();
        }
        return null;
    }

Das gibt mir die Wochennummer aber ich bin nicht auf EmployeeRatesLevelA und EmployeeRatesLevelB.

Möchte lernen, andere tolle Dinge, aber ich bin neu in Java und der xml-Dokument ist wirklich klein -, DOM-sollte ausreichen.

  • Was ist dein code?
  • Wie groß ist der Datensatz? Wird es nur ein paar kleine Datensätze oder etwas viel größeres?
  • Nur als Rat für die Zukunft - nicht mit DOM für XML. Es gibt viele viel effizientere Techniken - vtd-xml, SAX (sächsischen), XOM
  • Das dataset ist eher klein, etwa 3-4 Instanzen von <DataSet>
  • Welche version des JDK benutzt du?
InformationsquelleAutor Redzon | 2011-12-01
Schreibe einen Kommentar