读书人

取得一个html页面后想改动某些内容再

发布时间: 2012-01-30 21:15:58 作者: rapoo

取得一个html页面后,想改动某些内容再显示,如何做?
我想让我的程序访问某个网页,想改动某些内容(改动网页的html源码)后再显示。比如,页面本来的是这样的:

<html>
<head>
<title> 姓名 </title>
</head>
<body>
<p> 姓名 </p>
<p> <input type= "text " name= "T1 " size= "20 "> </p>
<p> 恭喜你 </p>
</body>
</html>


程序把它变成了这样再显示:
<html>
<head>
<title> 姓名 </title>
</head>
<body>
<p> 姓名 </p>
<p> <input type= "text " name= "T1 " size= "20 " value= "张三 "> </p>
<!--上面文本框里加了一个名字“张三”-->
<p> 恭喜发财 </p> <!--又改变了一行文字-->
</body>
</html>


如何做?
我用CHTMLView导航到这个页面后,不知道下一步该如何做?如果用CHTML::GetDoucument()可取得文件接口但又不知道如何去修改里面的内容?如果用CHTMLView::GetSource()取得一个源码的CString,倒是可以改字串,但是改好后不知道如何把新字串付值回去。要是有个CHTMLView::SetSource()就好了!?
怎么弄呀?各位帮帮我呀,急呀!!!




[解决办法]
CHtmlView::GetHtmlDocument

IHTMLDocument3::getElementById,IHTMLDocument3::getElementsByName

HRESULT IHTMLInputElement::get_value(BSTR *p);
HRESULT IHTMLInputElement::put_value(BSTR v);
[解决办法]
把html当文本处理,然后再添加内容。
之后用ie打开这个文本信息
[解决办法]
用put_value就可以了
[解决办法]
hr = body-> put_innerHTML( bszNewHTML );

[解决办法]
msdn.microsoft.com/workshop/browser/editing/mshtmleditor.asp

读书人网 >VC/MFC

热点推荐