msxml解析rss出现问题,请达人指教

时间:2021-08-05 14:47:52
问题描述;
//根据输入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 操作。

#3


我没有试过,但是你可以用pDoc->load(url)直接就可以

#4


1、读取urlReponse-〉CFile
2、CFile-〉IStream
3、IStream-〉MSXML::IXMLDOMDocumentPtr
4、遍历。。。

此为在下拙法
求更好的方法

#5


szAllData+="\r\n";
这句有问题。
你有没有把数据打印出来看,数据是否正确。
不知道为什么要这句?

#1


你把m_show写到文本文件里,然后用xmlSPY验证一下是否有效

#2


hr = m_pDoc->get_documentElement( &iRooterElm );
对iRooterElm 操作。

#3


我没有试过,但是你可以用pDoc->load(url)直接就可以

#4


1、读取urlReponse-〉CFile
2、CFile-〉IStream
3、IStream-〉MSXML::IXMLDOMDocumentPtr
4、遍历。。。

此为在下拙法
求更好的方法

#5


szAllData+="\r\n";
这句有问题。
你有没有把数据打印出来看,数据是否正确。
不知道为什么要这句?