Java使用文件drop

时间:2016-07-29 12:01:37

标签: java xml unmarshalling

在我的代码中已经实现了filedrop,我需要解析我放在main()中的xml文件。

主要()

case "XML":
  text.append("Processing file type XML: "+files[i].getCanonicalPath() + "\n" );
  ReadXml read_xml = new ReadXml();
  read_xml.read(files[i].getCanonicalPath(), text);
  break;

ReadXml.java

public class ReadXml {

    ProgramDocument programDocument = new ProgramDocument();
    public void read(String FILE, javax.swing.JTextArea text ) {

    try {
        JAXBContext context = JAXBContext.newInstance(ProgramDocument.class);
        Unmarshaller u = context.createUnmarshaller();

        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        dbf.setNamespaceAware(true);
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(FILE);
        Object o = u.unmarshal( doc );
        doc.getDocumentElement().normalize();
        text.append("Account : " +doc.getElementsByTagName("Account").item(0));

    }
    catch(Exception e) {
        text.append("XML file not parsed correctly.\n");
        }
    }
}

我无法打印任何内容,当我出现时,我看到“NULL”或只是空行或某些路径@ numbers

我不是开发人员,我只需要尝试打开xml发送内容到数据库,但这已经太过分了。

编辑:添加了部分xml

<?xml version="1.0" encoding="UTF-8"?>
<ARRCD Version="48885" Release="38">
<Identification v="ORCOZIO"/>
<Version v="013"/>
<Account v="OCTO">
<Type v="MAJO"/>
<Date v="2016-05-14"/>
</AARCD>

1 个答案:

答案 0 :(得分:1)

“帐户”元素中没有标记为“帐户”的元素。 您想在此处阅读的是帐户的属性,而不是其他元素。 因此,如果要读取属性v,则应使用eElement.getAttribute(“v”),而不是getElementsByTagName()