Как считать значения атрибутов в XML-файле?

public class ParserXML {
    public static String parseDOM(String fileName) {
    File file = new File(fileName);
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        Document doc = null;
        try {
            doc = dbf.newDocumentBuilder().parse(file);
        } catch (Exception e) {
            System.out.println("Open prasing error:" + e.toString());
            return null;
        }
        Node rootNode = doc.getFirstChild();
        NodeList destlist = doc.getElementsByTagName("dest");
        NodeList prefix = doc.getElementsByTagName("prefix");
        System.out.println("rootNoode:"+ rootNode.getNodeName());
        NodeList dest = rootNode.getChildNodes();
        for (int i=0;i< dest.getLength();i++){
            if(dest.item(i).getNodeType()!=Node.ELEMENT_NODE){
                continue;
            }
            //System.out.println("node dest:" + dest.item(i).getAttributes());
            for (int l = 0; l < destlist.getLength(); l++) {
                Element element = (Element) destlist.item(l);
                System.out.println(element.getAttribute("title"));
            }

        }
        System.out.println(prefix.);
        return "";
    }
}

Подскажите как считать значения атрибутов из xml. Вот xml:

<dest title="Оператор X Абхазия">
    <prefix values="5123,515,57">
        <costout cost="32.37"/>
    </prefix>
</dest>

Ответы (1 шт):

Автор решения: Станислав Михайлов

Я конечно сделал так, но уверен что есть более грамотное и простое решение

NodeList destlist = doc.getElementsByTagName("dest");
NodeList prefix = doc.getElementsByTagName("prefix");
NodeList costout = doc.getElementsByTagName("costout");

for (int i = 0; i < destlist.getLength(); i++) {
    Element element = (Element) destlist.item(i);
    System.out.println(element.getAttribute("title"));
}
for (int i= 0; i < prefix.getLength(); i++) {
    Element element = (Element) prefix.item(i);
    System.out.println(element.getAttribute("values"));
}
for (int i= 0; i < costout.getLength(); i++) {
    Element element = (Element) costout.item(i);
    System.out.println(element.getAttribute("cost"));
}
→ Ссылка