社区
HTML/XML
帖子详情
xml问题,从IXMLDOMDocument接口内容到一个string中的问题
suokeng
2003-12-16 09:17:49
IXMLDOMDocument接口有一个方法save可以把内容保存到xml文件里,但是我不想这样
我想直接放入string中然后通过网络发送到客户端。如何解决???
...全文
122
6
打赏
收藏
xml问题,从IXMLDOMDocument接口内容到一个string中的问题
IXMLDOMDocument接口有一个方法save可以把内容保存到xml文件里,但是我不想这样 我想直接放入string中然后通过网络发送到客户端。如何解决???
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
pb往
XML
文档
中
写数据或者从
XML
文档
中
提数据
- **创建
XML
对象**:首先,你需要在PowerBuilder
中
创建
一个
XML
对象,例如使用`Create Object`语句创建
一个
`I
XML
DOM
Document
`对象。 - **定义
XML
结构**:然后,定义
XML
文档的结构,包括元素(Element)、属性...
C++解析
xml
文档或者
xml
字符串方法
在这个例子
中
,`parse
XML
String
`函数接收
一个
XML
字符串,将其转化为`BSTR`,然后调用`RealPlay`函数。在`RealPlay`
中
,使用`load
XML
`方法解析
XML
字符串,而不是`load`方法,因为`load
XML
`用于解析内存
中
的
XML
字符串...
XML
VC 简单实例
在VC
中
解析
XML
,通常会用到MS
XML
库(Microsoft
XML
Core Services),这是
一个
ActiveX组件,提供了多种
接口
供开发者使用,如I
XML
DOM
Document
、I
XML
DOM
Node等。这些
接口
提供了加载
XML
文档、遍历节点、修改数据等功能...
pb解析
xml
文件示例.rar
例如,要创建
一个
新的元素并将其添加到文档
中
: ```pb I
XML
DOM
Element newNode =
xml
Doc.createElement("new_element") newNode.setAttribute("attribute", "value")
xml
Doc.
document
Element.appendChild(newNode) ...
xml
文件读写
通过循环遍历 `T
String
List`,将每一项转化为 `T
XML
Node` 添加到
XML
文档的根元素下,最终形成
一个
完整的
XML
文档,并保存到 `output.
xml
` 文件
中
。 四、
XML
文件读取 读取
XML
文件,通常使用 `T
XML
Document
` 的...
HTML/XML
3,055
社区成员
8,075
社区内容
发帖
与我相关
我的任务
HTML/XML
VC/MFC HTML/XML
复制链接
扫一扫
分享
社区描述
VC/MFC HTML/XML
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章