|
IHtmlViewer元素处理三函数分析(2) 参数: pIHtmlViewer指向IHtmlViewer接口对象 nElemPos为文档中元素的位置。该值可由IHTMLVIEWER_FindElem()返回值得到 pchBuf指向buffer的首地址,用来保存元素文本字符串(零结束符) cbBufbuffer的字节大小 返回值: 返回IHTMLVIEWER_BADELEMENT为失败,表示nElemPos值无效 返回非零非负的整数值,表示结果字符串的字节长度 返回0,表示是一个空元素,或者该元素不包含文本 返回一个比cbBuf大的值,但只有cbBuf个字节写入buffer中 int32 IHTMLVIEWER_GetAttrValue(IHtmlViewer * pIHTMLViewer,int32 monopoles,const char * pszAttr,char * pchBuf,int32 cbBuf) 参数: pIHtmlViewer指向IHtmlViewer接口对象 nElemPos为文档中元素的位置。该值可由IHTMLVIEWER_FindElem()返回值得到 pszAttr存储要查找的属性名称,是一个零结束符的ASCII字符串,大小写不敏感,如"value" pchBuf指向buffer的首地址,用来保存元素文本字符串(零结束符) cbBufbuffer的字节大小 返回值: 返回IHTMLVIEWER_NOTFOUND,表示指定的元素未发现 返回IHTMLVIEWER_BADELEMENT,表示pszElem是一个不满足标准规范的元素名,只有经过标准规范认证的元素才能被识别 返回IHTMLVIEWER_BADATTR,表示pszAttr不是一个规范的属性名称,只有经过标准规范认证的属性才能被识别 返回IHTMLVIEWER_NOVALUE,表示属性是标准规范的,但是确没有赋值 返回一个非负整数,表示拷贝到pchBuf中的字符串字节长度 返回一个比cbBuf大的值,但只有cbBuf个字节写入buffer中 应用例子 比如以上面的HTML页面为例,那么下面的代码的含义如下: int n = IHTMLVIEWER_FindElem(pApp->m_pHTMLViewer, "INPUT", 1); 代码的含义是:查找当前的HTML页面中是否有"input"元素,并且排在第二个?返回的结果表示有这样的元素。 char chBuf[100]; int n1 = IHTMLVIEWER_GetElemText(pApp->m_pHTMLViewer, n, chBuf, 100); 代码的含义是:查找上述的"input"元素的文本内容。返回的结果为0,表示没有任何文本内容。 int n2 = IHTMLVIEWER_GetAttrValue(pApp->m_pHTMLViewer, n, "VALUE", chBuf, 100); 代码的含义是:查找上述的"input"元素中的"value"属性的值。返回的结果保存在chBuf中,是"12345678",n2的值是字符串的长度。 总结 我所研究的这三个函数的作用,主要是为了根据程序的需要分析HTML页面,比方对于表单的深入分析、对于链接的分析等等,这三个函数将有 利于编写灵活的分析HTML页面的程序,可以更好的利用IHtmlViewer接口的功能。
|