问题描述
只要html文件存在着句话<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXhtml1.0Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">,读取就会报错,提示尝试读取或写入受保护的内存。这通常指示其他内存已损坏。去掉这句话就没问题了:用到了HTMLEditorControl控件,高手帮解决下
解决方案
解决方案二:
呵呵。用WebBrowser.Document读取就不会报错。我也在用winform读取网页内容。
解决方案三:
据估计这一般是代码逻辑问题。
解决方案四:
up..........
解决方案五:
引用1楼Sant11的回复:
呵呵。用WebBrowser.Document读取就不会报错。我也在用winform读取网页内容。
刚刚看了你问的问题!!和他问的几乎一样!!
解决方案六:
逻辑应该没问题,因为只要不加这句话,就没有问题,一旦加上,就会报错<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXhtml1.0Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">toSant11:用webbroswer控件读取么?
解决方案七:
解决方案八:
恩用webbroswer控件读取就不会报错。用XmlDocument就会报错
解决方案九:
voidBrowser_DocumentCompleted(objectsender,WebBrowserDocumentCompletedEventArgse){if(((WebBrowser)sender).Document!=null){MessageBox.Show(((WebBrowser)sender).DocumentText);HtmlElementCollectionelemColl=null;HtmlDocumentdoc=((WebBrowser)sender).Document;if(doc!=null){elemColl=doc.GetElementsByTagName("table")[3].GetElementsByTagName("TH");if(elemColl!=null){for(inti=0;i<elemColl.Count;i++){this.dataGridView1.Columns.Add(elemColl[i].OuterText.Trim(),elemColl[i].OuterText.Trim());}}else{MessageBox.Show("没有找到该地区的天气预报");}elemColl=doc.GetElementsByTagName("table")[3].GetElementsByTagName("TD");if(elemColl!=null){for(inti=0;i<elemColl.Count;i++){if(i==0||i==6||i==12){this.dataGridView1.Rows.Add(elemColl[i].OuterText.Trim(),elemColl[i+1].OuterText.Trim(),elemColl[i+2].OuterText.Trim(),elemColl[i+3].OuterText.Trim(),elemColl[i+4].OuterText.Trim(),elemColl[i+5].OuterText.Trim());}}}else{MessageBox.Show("没有找到该地区的天气预报");}}}}}
我可以活动,可用别的获得不了,水平太低啊。不知道又没有好办法