社区
HTML/XML
帖子详情
xml问题,从IXMLDOMDocument接口内容到一个string中的问题
suokeng
2003-12-16 09:17:49
IXMLDOMDocument接口有一个方法save可以把内容保存到xml文件里,但是我不想这样
我想直接放入string中然后通过网络发送到客户端。如何解决???
...全文
173
6
打赏
收藏
xml问题,从IXMLDOMDocument接口内容到一个string中的问题
IXMLDOMDocument接口有一个方法save可以把内容保存到xml文件里,但是我不想这样 我想直接放入string中然后通过网络发送到客户端。如何解决???
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liuxianzhi
2004-03-05
打赏
举报
回复
今天无意看到这个问题,猛然发现俺以前还回复过,楼主怎么还不结贴?
liuxianzhi
2003-12-26
打赏
举报
回复
上文说的有些问题,是修改WideCharToMultiByte函数的第一个参数,如下文,是ConvertBSTRToString函数的原型,如果真碰到编码的问题,你需要自己写一个ConvertBSTRToString函数,修改其中调用的WideCharToMultiByte函数的参数。
inline char* ConvertBSTRToString(BSTR pSrc)
{
if(!pSrc) return NULL;
DWORD cb,cwch = ::SysStringLen(pSrc);//convert even embeded NULL
char *szOut = NULL;
if(cb = ::WideCharToMultiByte(CP_UTF8, 0, pSrc, cwch + 1, NULL, 0, 0, 0))//CP_ACP
{
szOut = new char[cb];
if(szOut)
{
szOut[cb - 1] = '\0';
if(!::WideCharToMultiByte(CP_UTF8, 0, pSrc, cwch + 1, szOut, cb, 0, 0))//CP_ACP
{
delete []szOut;//clean up if failed;
szOut = NULL;
}
}
}
return szOut;
};
liuxianzhi
2003-12-26
打赏
举报
回复
"接放入string中然后通过网络发送到客户端"
你的问题是什么?
是如何把xml文件的内容放到string中,还是如何用网络发送string?
如果是前者,请参考我的代码,都是实践中的经验 :)
int CXMLManager::GetElementValue(CString &strElementValue)
{
USES_CONVERSION;
strElementValue = "";
//遍历当前元素节点的所有子节点,找到IXMLDOMText节点(如果有)
//并读出其值.
if (pCurNode != NULL)
{
MSXML2::IXMLDOMNodeList *pTempNodeList = NULL;
MSXML2::IXMLDOMNode *pTempNode = NULL;
long lTemp;
hrErr = pCurNode->get_childNodes(&pTempNodeList);
if (hrErr == S_OK)
{
pTempNodeList->get_length(<emp);
for (int i=0;i<lTemp;i++)
{
BSTR bszTemp;
CString strTemp;
pTempNodeList->get_item((long)i,&pTempNode);
if (pTempNode != NULL)
{
pTempNode->get_nodeTypeString(&bszTemp);
strTemp = OLE2A(bszTemp);
if (strTemp.Compare("text") == 0)
{
VARIANT vtElementValue;
vtElementValue.vt = VT_EMPTY;
pTempNode->get_nodeValue(&vtElementValue);
//在这里把BSTR转换为CString数据:
strElementValue = OLE2A(vtElementValue.bstrVal);
或者用下面的这一行,尤其是当你碰到不同编码问题时(如BSTR中使Unicode的),可以通过修改ConvertBSTRToString()函数的第一个参数解决:
//strElementValue = _com_util::ConvertBSTRToString(vtElementValue.bstrVal);
}
}
}
CheckAndRelease(pTempNode);
CheckAndRelease(pTempNodeList);
if (strElementValue.Compare("") == 0)
return 0;
return 1;
}
return 0;
}
return 0;
}
mahatma_cn
2003-12-18
打赏
举报
回复
或者pXMLDom->get_xml(&bstr);
mahatma_cn
2003-12-18
打赏
举报
回复
直接用QueryInterface查询IXMLDOMDocument的IStream接口,之后直接用IStream中的方法。
蒋晟
2003-12-17
打赏
举报
回复
1 查询IXMLDOMDocument对象的IXMLDOMDocument [MS XML]接口,如果成功获得,访问其xml属性
2 查询IXMLDOMDocument对象的IPersistStream接口,如果成功获得,建立一个内存Stream(COleStreamFile就是一个),然后用IPersistStream::Save写到内存Stream
eclipse 无法启动AVD,出现Starting emulator for AVD '' PANIC: Could not open: 错误提示的解决办法
馒头同学,一心想做Android开发,于是下定决心
Android开发之旅:环境搭建及HelloWorld (AVD无法启动,出现Starting emulator for AVD '2.2' PANIC: Could not open: 错误提示)
——工欲善其事必先利其器 引言 本系列适合0基础的人员,因为我就是从0开始的,此系列记录我步入Android开发的一些经验分享,望与君共勉!作为Android队伍
中
的
一个
新人的我,如果有什么不对的地方,还望不吝赐教。 在开始Android开发之旅启动之前,首先要搭建环境,然后创建
一个
简单的HelloWorld。本文的主题如下: 1、环境搭建 1.1、JDK安装1.2、Eclips
PANIC: Could not open:my_avd.ini解决
PANIC: Could not open:my_avd.ini解决 网上解决方案: PANIC: Could not open: C:\
Document
s and Settings\Administrator\PANIC: Could not open:my_avd.ini 原来如果你采用绝对路径定位的话,也就是说在环境变量里面把路径写死了,比如你装d:\android-sdk时,你
Starting emulator for AVD 'android' PANIC: Could not open: android
我的电脑-->属性-->高级-->环境变量。 新建系统环境变量, 名字:ANDROID_SDK_HOME 变量值:X:\ X为android文件夹所在 (文件夹放在根目录) 然后新建
一个
,就能开机了...
Android启动模拟器出现PANIC: Could not open:解决方案
1、打开ADT,启动AVD时候,出现以下错误: Launching a new emulator with Virtual Device 'droidX2'PANIC: Could not open: droidX2 解决方案: 设置 1、ANDROID_SDK_HOME到你的安装安装目录,然后重启服务器,
问题
得到解决 2、重新新建AVD...
HTML/XML
3,056
社区成员
8,075
社区内容
发帖
与我相关
我的任务
HTML/XML
VC/MFC HTML/XML
复制链接
扫一扫
分享
社区描述
VC/MFC HTML/XML
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章