0

我无法正确地将一些信息附加到我的 xml 文件中。这就是 scrivi 功能

    public String scrivi (Document doc, File dest)
   {
     try
     {

        DOMSource sorgente = new DOMSource (doc);
        StreamResult sr = new StreamResult (dest);        
        TransformerFactory tf =
            TransformerFactory.newInstance();
        Transformer transf = tf.newTransformer();
        transf.transform (sorgente, sr);
        return "Tutto ok";
     }
     catch (TransformerConfigurationException tce)
     {

        System.out.println(tce.getMessage());
        return  "<h1> Config </h1>";
     }
     catch (TransformerException te)
     {

        System.out.println(te.getMessage());
        return "<h1> Transformer Errore </h1>";
     }
   }

并且 tath 是我的代码:

 try {
                DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
                DocumentBuilder db = dbf.newDocumentBuilder();
                Document document = db.parse(getClass().getResourceAsStream("/azioni.xml"));


            Element root = document.getDocumentElement(); 
            Element new_azione = document.createElement("azione");
            Element id = document.createElement("id_azione");
            id.setTextContent(id_azione);
            Element nome = document.createElement("nome_azione");
            nome.setTextContent(nome_azione);
            Element prezzo_a = document.createElement("prezzo");
            prezzo_a.setTextContent(prezzo);
            new_azione.appendChild(id);
            new_azione.appendChild(nome);
            new_azione.appendChild(prezzo_a);
            document.getDocumentElement().appendChild(new_azione);



            String nomexmlOut="/azioni.xml";



            File filedest = new File(nomexmlOut); 


            out.println(this.scrivi(document, filedest));

}

我收到错误 Transformer Errore ... 我该如何解决?怎么了? * 更新 * 错误信息

java.io.FileNotFoundException: /azioni.xml (Permission denied)
4

1 回答 1

2

没有实际的异常跟踪或消息很难说,但我猜你的问题是输出流。

File("/azioni.xml");

不一样

getClass().getResourceAsStream("/azioni.xml")

尝试将输出定向到系统输出,看看它是否有效。即声明 scrivi

public String scrivi (Document doc, OutputStream out)

并调用它

scrivi(document, System.out);

更新:

要写入相同的文件位置,请尝试这样的操作(未经测试)

文件输出 = new File(getClasss().getResource("...").getFile());

并确保在尝试写入之前关闭最初读取的输入流。

于 2013-04-02T21:48:19.320 回答