我有一个应用程序正在传递一个(BSTR* ProfileXml)作为输出参数。因此,在使用SysAllocString( Profile )分配配置文件后,我发送了一个配置文件
WCHAR Profile[] =
L"<IhvSecurity xmlns=\"http://www.sampleihv.com/nwifi/profile\">"
L"<IHVSecurityParam2>parameter value</IHVSecurityParam2>"
L"</IhvSecurity>";它可以很好地处理几乎所有ascii字符的参数值(不包括C0代码,如STX ascii代码2 ETX ascii代码3)。只要我发送的STX或ETX的应用程序发送错误,并要求有效的xml缓冲区,我正在使用IXMLDOMElement方法加载配置文件缓冲区修改缓冲区,并再次保存缓冲区。我没有提到配置文件字符串缓冲区中的编码,默认是utf - 8。
所以我在这里做错了什么,或者我们不能在xml中使用STX / ETX?MSMXL分析器无法分析它们。或者他们以某种方式/ API将其写入到param buffer is node中。
任何帮助都将不胜感激
谢谢
发布于 2012-03-15 04:34:44
你说得对,you can't use control characters in XML 1.0。请参阅valid range的规范。XML 1.1添加了对这些控制字符的支持,但我不认为MSXML支持XML 1.1。
作为一种变通方法,您可以实现某种转义方案,然后在另一端对其进行解码。
https://stackoverflow.com/questions/9709535
复制相似问题