khl_xml 1.0.0
载入中...
搜索中...
未找到
khl_xml_util.cpp
2#include <cstdio>
3#include <cstddef>
4
5KHL_XML_NAMESPACE_BEGIN
6
7// snprintf_
8int XmlUtil::snprintf_(char *buffer, size_t size, const char *format, ...)
9{
10#if defined(_MSC_VER) && (_MSC_VER >= 1400) && (!defined WINCE)
11 va_list va;
12 va_start(va, format);
13 const int result = vsnprintf_s(buffer, size, _TRUNCATE, format, va);
14 va_end(va);
15 return result;
16#elif defined _MSC_VER
17 va_list va;
18 va_start(va, format);
19 int result = _snprintf(buffer, size, format, va);
20 va_end(va);
21 return result;
22#else
23 va_list va;
24 va_start(va, format);
25 int result = snprintf(buffer, size, format, va);
26 va_end(va);
27 return result;
28#endif
29}
30
31// vsnprintf_
32int XmlUtil::vsnprintf_(char *buffer, size_t size, const char *format, va_list va)
33{
34#if defined(_MSC_VER) && (_MSC_VER >= 1400) && (!defined WINCE)
35 const int result = vsnprintf_s(buffer, size, _TRUNCATE, format, va);
36 return result;
37#elif defined _MSC_VER
38 const int result = _vsnprintf(buffer, size, format, va);
39 return result;
40#else
41 const int result = vsnprintf(buffer, size, format, va);
42 return result;
43#endif
44}
45
46const char *XmlUtil::_errorNames[XML_ERROR_COUNT] = {
47 "XML_SUCCESS",
48 "XML_NO_ATTRIBUTE",
49 "XML_WRONG_ATTRIBUTE_TYPE",
50 "XML_ERROR_FILE_NOT_FOUND",
51 "XML_ERROR_FILE_COULD_NOT_BE_OPENED",
52 "XML_ERROR_FILE_READ_ERROR",
53 "XML_ERROR_PARSING_ELEMENT",
54 "XML_ERROR_PARSING_ATTRIBUTE",
55 "XML_ERROR_PARSING_TEXT",
56 "XML_ERROR_PARSING_CDATA",
57 "XML_ERROR_PARSING_COMMENT",
58 "XML_ERROR_PARSING_DECLARATION",
59 "XML_ERROR_PARSING_UNKNOWN",
60 "XML_ERROR_EMPTY_DOCUMENT",
61 "XML_ERROR_MISMATCHED_ELEMENT",
62 "XML_ERROR_PARSING",
63 "XML_CAN_NOT_CONVERT_TEXT",
64 "XML_NO_TEXT_NODE",
65 "XML_ELEMENT_DEPTH_EXCEEDED"};
66const char *XmlUtil::ErrorIDToName(XMLError errorID)
67{
68 KHL_XML_ASSERT(errorID >= 0 && errorID < XML_ERROR_COUNT);
69 const char *errorName = _errorNames[errorID];
70 KHL_XML_ASSERT(errorName && errorName[0]);
71 return errorName;
72}
73
74FILE *XmlUtil::callfopen(const char *filepath, const char *mode)
75{
76 KHL_XML_ASSERT(filepath);
77 KHL_XML_ASSERT(mode);
78#if defined(_MSC_VER) && (_MSC_VER >= 1400) && (!defined WINCE)
79 FILE *fp = 0;
80 const errno_t err = fopen_s(&fp, filepath, mode);
81 if (err)
82 {
83 return 0;
84 }
85#else
86 FILE *fp = fopen(filepath, mode);
87#endif
88 return fp;
89}
90
91KHL_XML_NAMESPACE_END
XMLError
通用返回状态
通用函数