From ca3f051fbf42b9abf7c22e3f58215cf5010f9727 Mon Sep 17 00:00:00 2001
From: "arseny.kapoulkine"
- | Caution | -
---|---|
- Currently the content of CDATA sections is not escaped, so CDATA sections
- with values that contain |
+ CDATA sections with values that contain "]]>"
+ are split into several sections as follows: section with value "pre]]>post"
is written as <![CDATA[pre]]]]><![CDATA[>post]]>
.
+ While this alters the structure of the document (if you load the document after
+ saving it, there will be two CDATA sections instead of one), this is the only
+ way to escape CDATA contents.
+
- If you want to save the whole document to a file, you can use the following - function: +
+ If you want to save the whole document to a file, you can use one of the + following functions:
bool xml_document::save_file(const char* path, const char_t* indent = "\t", unsigned int flags = format_default, xml_encoding encoding = encoding_auto) const; +bool xml_document::save_file(const wchar_t* path, const char_t* indent = "\t", unsigned int flags = format_default, xml_encoding encoding = encoding_auto) const;
- This function accepts file path as its first argument, and also three optional + These functions accept file path as its first argument, and also three optional arguments, which specify indentation and other output options (see Output options) and output data encoding (see Encodings). The path has the target operating system format, so it can be a relative or absolute one, it should have the delimiters of target system, it should have the exact case if target - file system is case-sensitive, etc. File path is passed to system file opening - function as is. + file system is case-sensitive, etc. +
+
+ File path is passed to system file opening function as is in case of the
+ first function (which accepts const
+ char* path
); the second function either uses
+ a special file opening function if it is provided by the runtime library
+ or converts the path to UTF-8 and uses the system file opening function.
save_file
opens the target
@@ -96,19 +99,6 @@
handle as the only constructor argument and then calling save
;
see Saving document via writer interface for writer interface details.
- | Note | -
---|---|
- As of version 0.9, there is no function for saving XML document to wide - character paths. Unfortunately, there is no portable way to do this; the - version 1.0 will provide such function only for platforms with the corresponding - functionality. You can use stream-saving functions as a workaround if your - STL implementation can open file streams via wchar_t paths. - |
This is a simple example of saving XML document to file (samples/save_file.cpp):
-- cgit v1.2.3