Я пытаюсь написать файл библиотеки XML, который можно снова прочитать в моей программе.Написание XML в разных кодировках символов с помощью Java
Код автор файла выглядит следующим образом:
XMLBuilder builder = new XMLBuilder();
Document doc = builder.build(bookList);
DOMImplementation impl = doc.getImplementation();
DOMImplementationLS implLS = (DOMImplementationLS) impl.getFeature("LS", "3.0");
LSSerializer ser = implLS.createLSSerializer();
String out = ser.writeToString(doc);
//System.out.println(out);
try{
FileWriter fstream = new FileWriter(location);
BufferedWriter outwrite = new BufferedWriter(fstream);
outwrite.write(out);
outwrite.close();
}catch (Exception e){
}
Приведенный выше код делает написать документ XML.
Однако в заголовке XML это атрибут, который файл закодирован в UTF-16.
, когда я прочитал в файле, я получаю сообщение об ошибке:
«содержание не допускается в прологе»
эта ошибка не возникает, когда атрибут кодирования вручную изменено на UTF-8.
Я пытаюсь получить приведенный выше код для записи XML-документа, закодированного в UTF-8, или успешно проанализировать файл UTF-16.
код для разбора в это
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder loader = factory.newDocumentBuilder();
Document document = loader.parse(filename);
последняя строка возвращает ошибку.
Это может помочь, если вы сказали нам, что такое XMLBuilder. Googling для XMLBuilder показывает (я думаю) 7 разных классов ... на первой странице результатов поиска! –
oh, извините, XMLBuilder - это самосозданный класс, который принимает SortedSet of Book (класс оболочки для файла и метаданных) и возвращает построенный документ. Эта часть отлично работает. – romnempire