1 #include <XMLParseUtil.h>
9 XMLParseUtil::attrib(xmlTextReaderPtr reader
, wstring
const &name
)
12 for(int i
= 0, limit
= name
.size(); i
!= limit
; i
++)
14 mystr
+= static_cast<char>(name
[i
]);
17 xmlChar
*attrname
= xmlCharStrdup(mystr
.c_str());
18 xmlChar
*myattr
= xmlTextReaderGetAttribute(reader
, attrname
);
19 wstring result
= towstring(myattr
);
26 XMLParseUtil::latin1(xmlChar
const *input
)
33 int outputlen
= xmlStrlen(input
) + 1;
34 int inputlen
= xmlStrlen(input
);
36 unsigned char output
[outputlen
];
38 if(UTF8Toisolat1(output
, &outputlen
, input
, &inputlen
) != 0)
42 output
[outputlen
] = 0;
43 string result
= reinterpret_cast<char *>(output
);
48 XMLParseUtil::towstring(xmlChar
const * input
)
52 for(int i
= 0, limit
= xmlStrlen(input
); i
!= limit
; i
++)
55 if(((unsigned char) input
[i
] & 0x80) == 0x0)
57 val
= static_cast<wchar_t>(input
[i
]);
59 else if(((unsigned char) input
[i
] & 0xE0) == 0xC0)
61 val
= (input
[i
] & 0x1F) << 6;
63 val
+= input
[i
] & 0x7F;
65 else if(((unsigned char) input
[i
] & 0xF0) == 0xE0)
67 val
= (input
[i
] & 0x0F) << 6;
69 val
+= input
[i
] & 0x7F;
72 val
+= input
[i
] & 0x7F;
74 else if(((unsigned char) input
[i
] & 0xF8) == 0xF0)
76 val
= (input
[i
] & 0x07) << 6;
78 val
+= input
[i
] & 0x7F;
81 val
+= input
[i
] & 0x7F;
84 val
+= input
[i
] & 0x7F;
88 wcerr
<< L
"UTF-8 invalid string" << endl
;
92 result
+= static_cast<wchar_t>(val
);
98 XMLParseUtil::stows(string
const &str
)
100 wchar_t result
[str
.size()];
101 mbstowcs(result
, str
.c_str(), str
.size());
102 wstring result2
= result
;