社区
HTML/XML
帖子详情
xml问题,从IXMLDOMDocument接口内容到一个string中的问题
suokeng
2003-12-16 09:17:49
IXMLDOMDocument接口有一个方法save可以把内容保存到xml文件里,但是我不想这样
我想直接放入string中然后通过网络发送到客户端。如何解决???
...全文
113
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
XML
操作动态库
name=%s]"每
一个
%s对应
一个
C
String
字符串(如果name为"TEXT",则对应的%s参数为值) <br> bool AlterSingleNode(C
String
url, C
String
text, C
String
condition = "", ...);//condition为条件:其
中
condition的...
C# 将
Xml
Document
转化为
string
/// /// /// 将
Xml
Document
转化为
string
/// /// /// /// /// /// public
string
Convert
Xml
To
String
(
Xml
Document
xml
Doc) {
C#-
XML
文件提取字符串+字符串存为
XML
文件+创建
XML
(自定义节点)文件+读取节点
内容
...
一、将字符串写入
xml
文件(并保存) 写入:
Xml
Document
xdoc = new
Xml
Document
();...二、将
xml
文件赋值到字符串 读取
xml
文件:
Xml
Document
xdoc = new
Xml
Document
(); xdoc.Load(“p...
C#对
Xml
文件的基本操作 一(读取
Xml
文件
中
的数据)
代码: using System; using System.Threading... public static void Main(
string
[] args){
Xml
Document
xd=new
Xml
Document
(); xd.Load("test.
xml
");//加载
xml
文档
Xml
Node rootNode= xd.FirstChild;//得到x
使用
dom
4j解析
xml
文件及selectNodes取不到值
问题
解决
dom
4j解析
xml
文件及相关
问题
HTML/XML
3,055
社区成员
8,066
社区内容
发帖
与我相关
我的任务
HTML/XML
VC/MFC HTML/XML
复制链接
扫一扫
分享
社区描述
VC/MFC HTML/XML
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章