Java-DOM-XML-parsing :: erste element-Attribut-Wert

Wie kann ich extrahieren, - Attribut-Wert aus dem element. Meine xml-Knoten geschrieben, wie diese
< nodename-Attribut="Wert" > muss ich entpacken Sie es heraus, und vergleichen Sie Sie gegen eine andere Zeichenfolge ein.

Aber da bin ich nicht aufrufende Dokument.getElementsByTag dann kann ich nicht verwenden .getAttribute("att.").getNodeValue zu erhalten die Wert.

Statt dessen habe ich eine NodeList und getAttribute() haben keine getNodeValue.

package dev;

import java.io.*;
import java.util.*;

import javax.xml.parsers.*;
import javax.xml.xpath.*;
import org.w3c.dom.*;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;



public class Parser {


    static String def = "\"admin\",\"base\",\"Default\",\"simple\"";

    static String category = "";
    static String sku = "";
    static String has_options = "0";

    static String name = "";
    static String image = "";
    static String small_image = "";
    static String thumbnail = "";

    public static void toCSV() {
        try {
            BufferedWriter output = new BufferedWriter(new FileWriter("sim.csv", true));
            output.newLine();
            output.write(def);
            output.write(String.format(",\"%s\",\"%s\",\"%s\"", category, sku, has_options));
            output.write(String.format(",\"%s\",\"%s\",\"%s\",\"%s\"", name, image, small_image, thumbnail));
            output.flush();
            output.close();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        toCSV();
        try {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            factory.setNamespaceAware(true);
            DocumentBuilder builder = factory.newDocumentBuilder();

            Document document = builder.parse(new File("input.asp.xml"));
            document.getDocumentElement().normalize();

            NodeList list = document.getElementsByTagName("izdelek");
            for(int i = 0; i < 1; i++) {
                NodeList child = list.item(i).getChildNodes();
                for(int j = 0; j < child.getLength(); j++) {
                    if(child.item(j).getNodeName().equals("kategorija")) {
                        category = child.item(j).getTextContent().trim();
                    } else if(child.item(j).getNodeName().equals("ean")) {
                        sku = child.item(j).getTextContent().trim();
                    } else if(child.item(j).getNodeName().equals("izdelekIme")) {
                        name = child.item(j).getTextContent().trim();
                    } else if(child.item(j).getNodeName().equals("slikaMala")) {
                        small_image = child.item(j).getTextContent().trim();
                        thumbnail   = child.item(j).getTextContent().trim();
                    } else if(child.item(j).getNodeName().equals("slikaVelika")) {
                        image = child.item(j).getTextContent().trim();
                    } else if(child.item(j).getNodeName().equals("dodatneLastnosti")) {
                        NodeList subs = child.item(j).getChildNodes();
                        //^ need to parse these nodes they are written as <nodename attribute="value">
                        //i need to print out the value
                    } 
                }
                //toCSV();
            }

        } catch(Exception io) {
            io.printStackTrace();
        } 
    }


}

InformationsquelleAutor Sterling Duchess | 2012-03-31

Schreibe einen Kommentar