Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #if !defined(_FEDM_XMLBASE_H_INCLUDED_)
00037 #define _FEDM_XMLBASE_H_INCLUDED_
00038
00039
00040
00041 #ifdef _FEDM_XML_SUPPORT
00042
00043
00044 #include "FEDM.h"
00045 #include "FEDM_Xml.h"
00046
00047
00048
00049 class _FEDM_ISC_CORE_EXT_CLASS FEDM_XMLBase
00050 {
00051 public:
00052 FEDM_XMLBase();
00053 ~FEDM_XMLBase();
00054 void DeleteXmlTree();
00055
00056
00057 int QueryDocType(char* sFileName, char* sDocType, char* sDocVersion);
00058 int QueryDocType(char* sFileName, const char* sRootTag, char* sDocType, char* sDocVersion);
00059
00060
00061 int OpenDoc(char* sFileName, char* sMode, bool bAddCopyright=false);
00062 int CloseDoc();
00063 int IsXmlDoc();
00064 int HasOBIDTag();
00065 int HasRootTag(const char* szOemRootTag);
00066 int ReadDoc();
00067 int WriteDoc();
00068 wstring WriteStream();
00069 int LoadStream(wstring sXmlStream);
00070
00071
00072 FEDM_XML_TREEITEM* BuildTag(wstring sTag, bool bNewLine=true, bool bEmpty=false);
00073 int AddTagValue(FEDM_XML_TREEITEM* item, wstring sValue);
00074 int AddTagAttrib(FEDM_XML_TREEITEM* item, wstring sAttrib, wstring sValue);
00075 int AddTagItem(FEDM_XML_TREEITEM* pParent, FEDM_XML_TREEITEM* pChild);
00076
00077
00078 FEDM_XML_TREEITEM* FindTag( wstring sTag,
00079 bool bInside=false,
00080 bool bSavePos=false,
00081 bool bNext=false);
00082 FEDM_XML_TREEITEM* FindTag( wstring sTag,
00083 wstring sAttribute,
00084 bool bInside=false,
00085 bool bSavePos=false);
00086 FEDM_XML_TREEITEM* FindTag( wstring sTag,
00087 wstring sAttribName,
00088 wstring sAttribValue,
00089 bool bInside=false,
00090 bool bSavePos=false);
00091
00092 FEDM_XML_TREEITEM* FindTag( wstring sTag,
00093 unsigned int uiTagLevel,
00094 bool bNext=false);
00095 FEDM_XML_TREEITEM* FindTag( wstring sTag,
00096 wstring sAttribute,
00097 unsigned int uiTagLevel,
00098 bool bNext=false);
00099
00100
00101
00102
00103
00104 int GetTagValue(FEDM_XML_TREEITEM* item, string& sValue);
00105 int GetTagAttribCount(FEDM_XML_TREEITEM* item);
00106 int GetTagAttrib(FEDM_XML_TREEITEM* item, int iIndex, string& sAttrib, string& sValue);
00107 int GetTagAttrib(FEDM_XML_TREEITEM* item, int iIndex, wstring& wsAttrib, wstring& wsValue);
00108
00109
00110 int GetLastError();
00111
00112
00113
00114 protected:
00115 void SetLastError(int iError);
00116
00117
00118 int DeleteTagItem(FEDM_XML_TREEITEM* item);
00119
00120
00121 int WriteTagStream(FEDM_XML_TREEITEM* item);
00122
00123
00124 int ReadXmlHeader(char* cBuffer);
00125
00126 void AddComment();
00127
00128 int m_iLastError;
00129
00130 wstring m_sXmlStream;
00131 wstring m_sXmlComment;
00132 FILE* m_file;
00133 FEDM_XML_TREE_LIST m_XmlTree;
00134
00135
00136 wstring m_wsXmlVer;
00137 wstring m_wsEncoding;
00138 wstring m_wsStandalone;
00139 wstring m_wsDocType;
00140 wstring m_wsDocVer;
00141 wstring m_wsDate;
00142 wstring m_wsTime;
00143 };
00144
00145 #endif // #ifdef _FEDM_XML_SUPPORT
00146
00147 #endif // !defined(_FEDM_XMLBASE_H_INCLUDED_)