根据url,怎么获取xml?

cococut 2006-06-02 04:20:09
根据url,比如
http://111.51.67.81:8080/getmsg?msg_id=1234&mode=caption
用什么方法去访问该url,该url的网页是一个xml.
比如:
<?xml version="1.0" encoding="UTF-8"?>
<caption_msg_version>1.0</caption_msg_version>
<text>这是一条消息</text>

我的要求是:
用什么函数,输入的是url,
返回的是一个CString,
该CString就是上面的xml.
谢谢!
...全文
478 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
makec 2006-08-18
  • 打赏
  • 举报
回复
mark
makec 2006-08-18
  • 打赏
  • 举报
回复
mark
tttk 2006-06-06
  • 打赏
  • 举报
回复
同意二楼。用HTTP函数去取就是了。

如果要把XML取回来还要解析,那么就应该用IXMLDocument->load()方法,这是一个COM方法,需要加载COM对象。
sunmz_wjxy 2006-06-06
  • 打赏
  • 举报
回复
直接load,然后save.
CodeProject-Jerry 2006-06-05
  • 打赏
  • 举报
回复
直接用MSXML的 异步方式 打开HTTP上的URL
coolzdp 2006-06-02
  • 打赏
  • 举报
回复
错了,上面的没有输出:<

BOOL Cxxx::GetXmlWebPage(const CString strUrl, CString &strRcvXml)
{
CString strSentence;

CInternetSession sess;
CHttpFile* fileGet;
try
{
fileGet=(CHttpFile*)sess.OpenURL(strUrl);
}
catch(...)
{
//::AfxMessageBox(_T("链接无效!"));
fileGet = 0;
sess.Close();
return FALSE;
}

if(fileGet != NULL)
{
DWORD dwStatus;
DWORD dwBuffLen = sizeof(dwStatus);
BOOL bSuccess = fileGet->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen);

if( bSuccess && dwStatus>= 200&& dwStatus<300 )
{
strRcvXml = _T("");

while(fileGet->ReadString(strSentence))
{
strRcvXml += strSentence;
}
}
else
{
//strSentence.Format("打开网页文件出错,错误码:%d", dwStatus);
//AfxMessageBox(strSentence);
fileGet->Close();
sess.Close();
delete fileGet;
return FALSE;
}
fileGet->Close();
delete fileGet;
}
else
{
//::AfxMessageBox(_T("链接无效!"));
}

sess.Close();
return TRUE;
}

记得#include "AFXINET.H" //WININET support
coolzdp 2006-06-02
  • 打赏
  • 举报
回复
BOOL Cxxx::GetXmlWebPage(const CString strUrl)
{
CString strSentence;

CInternetSession sess;
CHttpFile* fileGet;
try
{
fileGet=(CHttpFile*)sess.OpenURL(strUrl);
}
catch(...)
{
//::AfxMessageBox(_T("链接无效!"));
fileGet = 0;
sess.Close();
return FALSE;
}

if(fileGet != NULL)
{
DWORD dwStatus;
DWORD dwBuffLen = sizeof(dwStatus);
BOOL bSuccess = fileGet->QueryInfo(HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwBuffLen);

if( bSuccess && dwStatus>= 200&& dwStatus<300 )
{
CString strRcv(_T(""));

while(fileGet->ReadString(strSentence))
{
strRcv += strSentence;
}
}
else
{
//strSentence.Format("打开网页文件出错,错误码:%d", dwStatus);
//AfxMessageBox(strSentence);
fileGet->Close();
sess.Close();
delete fileGet;
return FALSE;
}
fileGet->Close();
delete fileGet;
}
else
{
//::AfxMessageBox(_T("链接无效!"));
}

sess.Close();
return TRUE;
}
anothervip 2006-06-02
  • 打赏
  • 举报
回复
IXMLDOMDocument->load()

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧