无法使用loadxml加载“@”符号

时间:2011-10-21 04:51:48

标签: c++ soap msxml

我尝试执行以下行

VARIANT_BOOL vBoolTestConnection;

vBoolTestConnection=m_spXMLDom->loadXML(bstrInput.m_str);

bstrInput具有以下XML规范。对于指定的XML,loadXML返回false。 bstrInput在密码标记中有'@'。如果我用任何其他密码字符替换@符号,Load XML工作正常。你能帮我找到解决方案吗?

"<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-
 ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-
 ENC="http://schemas.xmlsoap.org/soap/encoding/" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xmlns:xsd="http://www.w3.org/2001/XMLSchema" SOAP-
 ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-
 ENV:Body><CheckValidUser 
 xmlns="http://systemsys"><UserName>HGDXJHSAD</UserName><Password>&</Password></CheckValidUs
er></SOAP-ENV:Body></SOAP-ENV:Envelope>"

1 个答案:

答案 0 :(得分:2)

BSTR通常是UTF-16。您发布的XML字符串声称它使用的是UTF-8编码。