Название: Заголовок Xml Отправлено: break от Март 09, 2010, 03:57 Раньше всегда использовал для создания заголовка стандартную конструкцию
Код
при этом там где у меня XML сохрянялся в файл было так Код
В документации сказано Цитировать If this node is a document node, the encoding of text stream str's encoding is set by treating a processing instruction by name "xml" as an XML declaration, if such a one exists, and otherwise defaults to UTF-8. XML declarations are not processing instructions, but this behavior exists for historical reasons. If this node is not a document node, the text stream's encoding is used. При этом все как бы работало но заметил что при создании XML заголовок такой Цитировать <?xml version="1.0" encoding="UTF-8"?> а если его потом открыть и сделать doc.setContent , поизменять ноды и сохранить (естественно m_doc.createProcessingInstruction заново не вызывается, т.к. нода содержащая эту инструкцию в читаемом документе уже есть), то заголовок становится таким Цитировать <?xml version='1.0' encoding='UTF-8'?> Почему кавычки заменились на апострофы? Баг или фича - я пока не могу никак понять... Кроме того почитав доку, нашел другой способ задания заголовка с которым он уже не меняет свой вид 1) m_doc.createProcessingInstruction для создания ноды с указанием кодировки не вызываем вообще! 2) при сохранении делаем так Код
теперь заголовок всегда выгляит так <?xml version="1.0" encoding="UTF-8"?> Кроме того если использовать 2-й способ то даже если стереть заголовок из XML вручную - он будет дописан при первом пересохранении, а вот при первом (по крайней мере у меня createProcessingInstruction вызывался только при создании нового xml - чтобы не анализировать есть ли он там) не будет, соответственно второй способ всегда перекодирует файлы при записи, а первый только при создании xml. Если кто сталкивался жду ответа... Название: Re: Заголовок Xml Отправлено: break от Март 09, 2010, 04:01 Кидаю небольшой самодостаточный (без зависимостей) проект с которым можно поэксперементировать.
В проекте сохранялка настроек через XML (не связана с QSettings) и юнит тест на нее... |