X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/434cf5a4488ebcf1101cce6e0aec4c438c5e86fc..c63312c472c83be6d3b935f0ceeef484a7d611ce:/docs/latex/wx/xmldocument.tex diff --git a/docs/latex/wx/xmldocument.tex b/docs/latex/wx/xmldocument.tex index d42bda0f8d..cdc5ed9ad4 100644 --- a/docs/latex/wx/xmldocument.tex +++ b/docs/latex/wx/xmldocument.tex @@ -18,7 +18,7 @@ A simple example of using XML classes is: \begin{verbatim} wxXmlDocument doc; -if (!doc.Load(wxT("myfile.xml")) +if (!doc.Load(wxT("myfile.xml"))) return false; // start processing the XML file @@ -51,6 +51,23 @@ while (child) { } \end{verbatim} +{\bf Note:} if you want to preserve the original formatting of the loaded file including whitespaces +and indentation, you need to turn off whitespace-only textnode removal and automatic indentation: + +\begin{verbatim} +wxXmlDocument doc; +doc.Load(wxT("myfile.xml"), wxT("UTF-8"), wxXMLDOC_KEEP_WHITESPACE_NODES); +doc.Save(wxT("myfile2.xml"), wxXML_NO_INDENTATION); // myfile2.xml will be indentic to myfile.xml +\end{verbatim} + +Using default parameters, you will get a reformatted document which in general is different from +the original loaded content: + +\begin{verbatim} +wxXmlDocument doc; +doc.Load(wxT("myfile.xml")); +doc.Save(wxT("myfile2.xml")); // myfile2.xml != myfile.xml +\end{verbatim} \wxheading{Derived from} @@ -69,16 +86,17 @@ while (child) { \latexignore{\rtfignore{\wxheading{Members}}} + \membersection{wxXmlDocument::wxXmlDocument}\label{wxxmldocumentwxxmldocument} \func{}{wxXmlDocument}{\void} -\func{}{wxXmlDocument}{\param{const wxString\& }{filename}, \param{const wxString\& }{encoding = wxT("UTF-8")}} +\func{}{wxXmlDocument}{\param{const wxString\& }{filename}, \param{const wxString\& }{encoding = wxT("UTF-8")}, \param{int }{flags = wxXMLDOC\_NONE}} Loads the given {\it filename} using the given encoding. See \helpref{Load()}{wxxmldocumentload}. -\func{}{wxXmlDocument}{\param{wxInputStream\& }{stream}, \param{const wxString\& }{encoding = wxT("UTF-8")}} +\func{}{wxXmlDocument}{\param{wxInputStream\& }{stream}, \param{const wxString\& }{encoding = wxT("UTF-8")}, \param{int }{flags = wxXMLDOC\_NONE}} Loads the XML document from given stream using the given encoding. See \helpref{Load()}{wxxmldocumentload}. @@ -86,12 +104,26 @@ Loads the XML document from given stream using the given encoding. See \helpref{ Copy constructor. + \membersection{wxXmlDocument::\destruct{wxXmlDocument}}\label{wxxmldocumentdtor} \func{}{\destruct{wxXmlDocument}}{\void} Virtual destructor. Frees the document root node. + + +\membersection{wxXmlDocument::DetachRoot}\label{wxxmldocumentdetachroot} + +\func{wxXmlNode*}{DetachRoot}{\void} + +Detaches the document root node and returns it. The document root node will be set to \NULL +and thus \helpref{IsOk}{wxxmldocumentisok} will return \false after calling this function. + +Note that the caller is reponsible for deleting the returned node in order to avoid memory leaks. + + + \membersection{wxXmlDocument::GetEncoding}\label{wxxmldocumentgetencoding} \constfunc{wxString}{GetEncoding}{\void} @@ -102,6 +134,7 @@ Returns encoding of in-memory representation of the document NB: this is meaningless in Unicode build where data are stored as wchar\_t*. + \membersection{wxXmlDocument::GetFileEncoding}\label{wxxmldocumentgetfileencoding} \constfunc{wxString}{GetFileEncoding}{\void} @@ -112,6 +145,7 @@ Note: this is the encoding original file was saved in, *not* the encoding of in-memory representation! + \membersection{wxXmlDocument::GetRoot}\label{wxxmldocumentgetroot} \constfunc{wxXmlNode*}{GetRoot}{\void} @@ -119,6 +153,7 @@ encoding of in-memory representation! Returns the root node of the document. + \membersection{wxXmlDocument::GetVersion}\label{wxxmldocumentgetversion} \constfunc{wxString}{GetVersion}{\void} @@ -129,6 +164,7 @@ If the version property was not explicitely given in the header, this function returns an empty string. + \membersection{wxXmlDocument::IsOk}\label{wxxmldocumentisok} \constfunc{bool}{IsOk}{\void} @@ -136,25 +172,41 @@ returns an empty string. Returns \true if the document has been loaded successfully. + \membersection{wxXmlDocument::Load}\label{wxxmldocumentload} -\func{bool}{Load}{\param{const wxString\& }{filename}, \param{const wxString\& }{encoding = wxT("UTF-8")}} +\func{bool}{Load}{\param{const wxString\& }{filename}, \param{const wxString\& }{encoding = wxT("UTF-8")}, \param{int }{flags = wxXMLDOC\_NONE}} + +Parses {\it filename} as an xml document and loads its data. -Parses {\it filename} as an xml document and loads data. Returns \true on success, \false otherwise. +If {\tt flags} does not contain {\tt wxXMLDOC\_KEEP\_WHITESPACE\_NODES}, then, while loading, all nodes of +type {\tt wxXML\_TEXT\_NODE} (see \helpref{wxXmlNode}{wxxmlnode}) are automatically skipped if they +contain whitespaces only. +The removal of these nodes makes the load process slightly faster and requires less memory however +makes impossible to recreate exactly the loaded text with a \helpref{Save}{wxxmldocumentsave} call later. +Read the initial description of this class for more info. -\func{bool}{Load}{\param{wxInputStream\& }{stream}, \param{const wxString\& }{encoding = wxT("UTF-8")}} +Returns \true on success, \false otherwise. + +\func{bool}{Load}{\param{wxInputStream\& }{stream}, \param{const wxString\& }{encoding = wxT("UTF-8")}, \param{int }{flags = wxXMLDOC\_NONE}} Like above but takes the data from given input stream. + \membersection{wxXmlDocument::Save}\label{wxxmldocumentsave} -\constfunc{bool}{Save}{\param{const wxString\& }{filename}} +\constfunc{bool}{Save}{\param{const wxString\& }{filename}, \param{int }{indentstep = 1}} Saves XML tree creating a file named with given string. -\constfunc{bool}{Save}{\param{wxOutputStream\& }{stream}} +If {\tt indentstep} is greater than or equal to zero, then, while saving, an automatic indentation +is added with steps composed by {\tt indentstep} spaces. +If {\tt indentstep} is {\tt wxXML\_NO\_INDENTATION}, then, automatic indentation is turned off. + +\constfunc{bool}{Save}{\param{wxOutputStream\& }{stream}, \param{int }{indentstep = 1}} + +Saves XML tree in the given output stream. See other overload for a description of {\tt indentstep}. -Saves XML tree in the given output stream. \membersection{wxXmlDocument::SetEncoding}\label{wxxmldocumentsetencoding} @@ -162,17 +214,22 @@ Saves XML tree in the given output stream. Sets the enconding of the document. + \membersection{wxXmlDocument::SetFileEncoding}\label{wxxmldocumentsetfileencoding} \func{void}{SetFileEncoding}{\param{const wxString\& }{encoding}} Sets the enconding of the file which will be used to save the document. + \membersection{wxXmlDocument::SetRoot}\label{wxxmldocumentsetroot} \func{void}{SetRoot}{\param{wxXmlNode* }{node}} Sets the root node of this document. Deletes previous root node. +Use \helpref{DetachRoot}{wxxmldocumentdetachroot} and then SetRoot if you want +to replace the root node without deleting the old document tree. + \membersection{wxXmlDocument::SetVersion}\label{wxxmldocumentsetversion} @@ -180,6 +237,7 @@ Sets the root node of this document. Deletes previous root node. Sets the version of the XML file which will be used to save the document. + \membersection{wxXmlDocument::operator=}\label{wxxmldocumentoperatorassign} \func{wxXmlDocument\& operator}{operator=}{\param{const wxXmlDocument\& }{doc}}