//根据输入url,获取rss的xml字符串
UpdateData();
CInternetSession sess;//建立会话
CHttpFile* pF=(CHttpFile*)sess.OpenURL(m_url);//打开文件
CString szData,szAllData;
while(pF->ReadString(szData))
{//读取文件
szAllData+="\r\n";
szAllData+=szData;
}
pF->Close();
sess.Close();
m_show=szAllData;
UpdateData(FALSE);
//结果保存在名为m_show的CString中
//将xml字符串导入,进行解析
UpdateData();
CoInitialize(NULL);//初始化com组件,
MSXML::IXMLDOMDocumentPtr pDoc;
HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML::DOMDocument));//创建一个com进程
if(!SUCCEEDED(hr))
{
MessageBox("failure");
}
pDoc->loadXML((_bstr_t)m_show);//将获取的xml字符串导入
MSXML::IXMLDOMNodeListPtr pNodeList = NULL;
pNodeList=pDoc->getElementsByTagName("item");//获取rss中item节点
MSXML::IXMLDOMNodePtr pSubNode;
CString strTemp;
int ntemp=pNodeList->Getlength();//获取节点数
//----------
//错误,返回结果长度为0;
//----------
return;
//我用测试的xml文档试过,可以实现,但是下载的rss文件就不行,达人们请指点指点
5 个解决方案
#1
你把m_show写到文本文件里,然后用xmlSPY验证一下是否有效
#2
hr = m_pDoc->get_documentElement( &iRooterElm );
对iRooterElm 操作。
对iRooterElm 操作。
#3
我没有试过,但是你可以用pDoc->load(url)直接就可以
#4
1、读取urlReponse-〉CFile
2、CFile-〉IStream
3、IStream-〉MSXML::IXMLDOMDocumentPtr
4、遍历。。。
此为在下拙法
求更好的方法
2、CFile-〉IStream
3、IStream-〉MSXML::IXMLDOMDocumentPtr
4、遍历。。。
此为在下拙法
求更好的方法
#5
szAllData+="\r\n";
这句有问题。
你有没有把数据打印出来看,数据是否正确。
不知道为什么要这句?
这句有问题。
你有没有把数据打印出来看,数据是否正确。
不知道为什么要这句?
#1
你把m_show写到文本文件里,然后用xmlSPY验证一下是否有效
#2
hr = m_pDoc->get_documentElement( &iRooterElm );
对iRooterElm 操作。
对iRooterElm 操作。
#3
我没有试过,但是你可以用pDoc->load(url)直接就可以
#4
1、读取urlReponse-〉CFile
2、CFile-〉IStream
3、IStream-〉MSXML::IXMLDOMDocumentPtr
4、遍历。。。
此为在下拙法
求更好的方法
2、CFile-〉IStream
3、IStream-〉MSXML::IXMLDOMDocumentPtr
4、遍历。。。
此为在下拙法
求更好的方法
#5
szAllData+="\r\n";
这句有问题。
你有没有把数据打印出来看,数据是否正确。
不知道为什么要这句?
这句有问题。
你有没有把数据打印出来看,数据是否正确。
不知道为什么要这句?