Возможно ли, используя xml_writer_settings, используемый в качестве третьего параметра в вызове write_xml, опустить объявление xml, когда функция сохраняет xml? Я имею в виду, что я бы не хотел иметь начальную часть «xml version =« blah »encoding =« blah blah ». Я ищу в Интернете, но я до сих пор не нашел ответа. Как это сделать?опустить объявление xml при сохранении xml с boost
ответ
нет, это не возможно. look here for members of xml_writer_settings
И тоже write_xml
звонки write_xml_internal
то есть (в наддува 1,52)
template<class Ptree>
void write_xml_internal(
std::basic_ostream<typename Ptree::key_type::value_type> &stream,
const Ptree &pt,
const std::string &filename,
const xml_writer_settings<typename Ptree::key_type::value_type> & settings)
{
typedef typename Ptree::key_type::value_type Ch;
typedef typename std::basic_string<Ch> Str;
stream << detail::widen<Ch>("<?xml version=\"1.0\" encoding=\"")
<< settings.encoding
<< detail::widen<Ch>("\"?>\n");
write_xml_element(stream, Str(), pt, -1, settings);
if (!stream)
BOOST_PROPERTY_TREE_THROW(xml_parser_error("write error", filename, 0));
}
Что вы имеете в виду, «это не реально»? – Magallo
@ Магалло, что это невозможно. – ForEveR
ах, невозможно. Ну, это очень разочаровывает. Я знал, что форсированный метод используется вовремя. Я знаю, что это возможно с помощью quickxml, я действительно не понимаю, почему они не дали нам этой возможности. Спасибо за ваш ответ. – Magallo
Да, это возможно, но вам необходимо вызвать функцию «write_xml_element» Ниже приведен пример с повышением 1.49:
using namespace boost::property_tree;
ptree pt;
...
write_xml_element(std::cout,ptree::key_type(),pt,-1,xml_writer_settings<ptree::key_type::value_type>());
Конечно. вы можете заменить стандартный вывод на std :: ofstream или любой другой выходной поток, который вы хотите.
Кажется, что write_xml_element не может работать без xml_writer_settings. И xml_writer_settings имеет две разные несовместимые версии; один с другим и с.
В повышающего v1.58 эта линия действует:
boost::property_tree::xml_writer_settings<std::string> settings;
boost::property_tree::xml_parser::write_xml_element(xmlStream,ptree::key_type(),pt_,-1, settings);
в наддува 1.54 это действует:
boost::property_tree::xml_writer_settings<char> settings;
boost::property_tree::xml_parser::write_xml_element(xmlStream,ptree::key_type(),pt_,-1, settings);
Я не уверен, если есть какое-либо решение для объединения их. Поэтому рассмотрите расширенную версию при работе с write_xml_element.
- 1. Опустить объявление XML?
- 2. исключить объявление xml при сохранении
- 3. Как опустить объявление XML из XML с помощью Java
- 4. Опустить XML-объекты при формировании
- 5. Сериализация xml объекта при сохранении исходного xml?
- 6. UnauthorizedAccessException при сохранении XML-файла
- 7. Alter XML при сохранении макета
- 8. Java ошибка при сохранении XML
- 9. Как опустить объявления xml при использовании XElement.Save?
- 10. Scala XML Опустить закрывающий тег
- 11. Опустить XML-декларацию в DataSet.WriteXMLSchema
- 12. Как опустить объявление xml в WordML document.xml при работе с байтами и MemoryStream?
- 13. Как удалить объявление XML при использовании LINQ to XML?
- 14. System.Xml.XmlException: Неожиданное объявление XML. Объявление XML должно быть первым
- 15. ANT - заменить объявление xml
- 16. Как написать объявление XML в файл XML?
- 17. Фильтрация XML при сохранении его структуры
- 18. Объявление и преобразование XML
- 19. Loosing brackets при сохранении AS3 в XML
- 20. Объявление XML xsd
- 21. Python: анализ XML-документа при сохранении объектов
- 22. Получение XML Ошибка при сохранении шаблонов Blogger
- 23. Ошибка строки при сохранении переменных в xml
- 24. сумасшедшие символы при сохранении XML?
- 25. Предотвращение искажения файлов при сохранении xml-файла
- 26. Требуется ли XML-объявление в файлах XSLT?
- 27. Как пропустить объявление xml при сериализации?
- 28. удалить объявление типа из XML при сериализации
- 29. Boost C++ XML-анализ
- 30. Прочтите xml using boost
Вы можете просто обрезать первую строку, содержащую после write_xml() – AlexT