2015-09-17 2 views
0

Я очень новичок в XML, и я пытаюсь изменить файл xml. Позвольте мне объяснить, что я хочу делать. У меня есть существующий файл, в котором вызывается несколько строк, но я хочу сохранить их и добавить другие.изменить xml-файл с помощью API Stax Java

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

Что мне нужно для чтения, чтобы знать, как это сделать?

Это мой Java-код:

public static void WriteFile(){ 
      try{ 
       XMLOutputFactory xMLOutputFactory = XMLOutputFactory.newFactory(); 
       XMLStreamWriter xMLStreamWriter = xMLOutputFactory. 
         createXMLStreamWriter(new FileOutputStream("src\\data\\orders.xml")); 
       xMLStreamWriter.writeStartDocument("1.0"); 
       xMLStreamWriter.writeStartElement("products"); 
       xMLStreamWriter.writeStartElement("product"); 

       //set description 
       xMLStreamWriter.writeStartElement("description"); 
       xMLStreamWriter.writeCharacters("Apple MacBook Air A 11.6 Mac OS X v10.7 Lion MacBook"); 
       xMLStreamWriter.writeEndElement(); 
       //end description 

       //set price 
       xMLStreamWriter.writeStartElement("price"); 
       xMLStreamWriter.writeAttribute("currency","USD"); 
       xMLStreamWriter.writeCharacters("999"); 
       xMLStreamWriter.writeEndElement(); 
       //end price 

       xMLStreamWriter.writeEndElement(); 
       //end produtcs 
       xMLStreamWriter.writeEndElement(); 
       //end produtc 
       xMLStreamWriter.flush(); 
       xMLStreamWriter.close(); 
      }catch (Exception e){ 
       System.out.println(e.getMessage()); 
      } 
     } 

ответ

-1

Ваш код использует XML-поток Writer писать некоторые данные в местоположении файла. Тот факт, что файл существует и содержит XML, не имеет значения, поскольку ваш код просто перезапишет его.

Что вы делаете сейчас:

  1. написать новое содержание

Что вам нужно:

  1. читать содержимое существующего файла
  2. написать старый содержание
  3. написать новое содержание
  4. сохранить файл

Процедуру 2, 3 и 4 вы можете использовать новый файл, а затем переписать старую.

+0

Можете ли вы дать мне пример литтера, пожалуйста? – Silviu

+0

Вот пример использования DOM: http://stackoverflow.com/questions/6445828/how-do-i-append-a-node-to-an-existing-xml-file-in-java Я предлагаю это один над StAX, так как его проще разбирать в выходящем файле. Конечно, вы можете использовать StAX, но он немного более подробный. –

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