msxml3: Build qualified name using libxml2 helper.
This commit is contained in:
parent
8f9804ed0b
commit
2329d2afdd
|
@ -182,23 +182,17 @@ static BSTR bstr_from_xmlCharN(const xmlChar *buf, int len)
|
||||||
|
|
||||||
static BSTR QName_from_xmlChar(const xmlChar *prefix, const xmlChar *name)
|
static BSTR QName_from_xmlChar(const xmlChar *prefix, const xmlChar *name)
|
||||||
{
|
{
|
||||||
DWORD dLen, dLast;
|
xmlChar *qname;
|
||||||
BSTR bstr;
|
BSTR bstr;
|
||||||
|
|
||||||
if(!name) return NULL;
|
if(!name) return NULL;
|
||||||
|
|
||||||
if(!prefix || *prefix=='\0')
|
if(!prefix || !*prefix)
|
||||||
return bstr_from_xmlChar(name);
|
return bstr_from_xmlChar(name);
|
||||||
|
|
||||||
dLen = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)prefix, -1, NULL, 0)
|
qname = xmlBuildQName(name, prefix, NULL, 0);
|
||||||
+ MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)name, -1, NULL, 0);
|
bstr = bstr_from_xmlChar(qname);
|
||||||
bstr = SysAllocStringLen(NULL, dLen-1);
|
xmlFree(qname);
|
||||||
if(!bstr)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
dLast = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)prefix, -1, bstr, dLen);
|
|
||||||
bstr[dLast-1] = ':';
|
|
||||||
MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)name, -1, &bstr[dLast], dLen-dLast);
|
|
||||||
|
|
||||||
return bstr;
|
return bstr;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue