2013-04-02 4 views
0

Я не могу правильно добавить некоторую информацию в свой XML-файл. Это функция scriviдобавить узел в xml в Java

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>"; 
    } 
    } 

и Таты мой код:

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 ... как я могу решить? что не так? * UPDATE * Информация об ошибке

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

Покажите полную ошибку, чтобы мы могли видеть, откуда она взялась. –

+0

добавлена ​​информация об ошибке –

ответ

2

Трудно сказать, без фактического следа исключения или сообщения, но мне кажется, что ваша проблема поток Ouput.

File("/azioni.xml"); 

не то же самое, как

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

Попробуйте с направлением вывода в систему и посмотреть, если он работает. т.е. объявить scrivi

public String scrivi (Document doc, OutputStream out) 

и назвать его

scrivi(document, System.out); 

UPDATE:

Для записи в том же месте файла, попробовать что-то вроде этого (непроверенные)

Файл из = новый Файл (. getClasss() getResource ("...") GetFile().);

и убедитесь, что вы закрыли входной поток, из которого вы первоначально читали, прежде чем пытаться писать.

+0

Добавлен erro info thanks –

+0

Хорошо, тогда я был прав. У вас или процесса нет прав на запись в/создание выходного файла. Попробуйте без косой черты ('/'); –

+0

Я заменил String nomexmlOut = "/ azioni.xml"; с String nomexmlOut = "azioni.xml"; но я получаю тот же результат java.io.FileNotFoundException: /azioni.xml (Permission denied) –

Смежные вопросы