MFC 获取网页中标签属性的值 mfcwebbrowser标签属性值C++网页 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 本帖最后由 VisualEleven 于 2014-05-13 15:21:12 编辑 小伙伴们,大伙伴们,大神们。 up > ................. UP ↑↑↑UP ↑↑↑UP ↑↑↑ ↖ ↑ ↗ ← ↔ → ↙ ↓ ↘ ╱ ▁ ╲ ▏ ㊣ ▕ ╲ ▔ ╱ getAttribute()获取对应节点属性 使用com的dispatch接口,不知对否。 CComPtr<IDispatch>m_spDisp; CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2>m_spDispDoc; CComQIPtr<IHTMLElementCollection, &IID_IHTMLElementCollection>m_spDispAnchs; m_spDisp = (IDispatch *)m_ctrlweb.GetDocument(); m_spDispDoc = m_spDisp; m_spDispDoc->get_all(&m_spDispAnchs); LONG len = 0; m_spDispAnchs->get_length(&len); for (int i = 0; i < len; i++) { CComVariant varName; CComVariant varIndex; varIndex = i; CComPtr<IDispatch> pDisp = NULL; m_spDispAnchs->item(varIndex, varName, &pDisp); CComQIPtr<IHTMLElement>m_spDispAnchs1; m_spDispAnchs1 = pDisp; CComBSTR bstrHref; m_spDispAnchs1->get_tagName(&bstrHref); if (i == 5) { CComBSTR bstrClassName; m_spDispAnchs1->get_className(&bstrClassName); CString szClassName(bstrClassName); CComBSTR bstrAttribute("data_value"); long flag = 0; VARIANT pRiant; pRiant.bstrVal = SysAllocString(NULL); pRiant.vt = VT_BSTR; m_spDispAnchs1->getAttribute(bstrAttribute, flag, &pRiant); } }我测试的时候pRiant就是"ABCDEFGHIJKLMN",用其它网页试的话,可能不是第5个,这要你自己查看。另外我测试的网页代码是:<html><body><a class= ><span class="xx" data_value="ABCDEFGHIJKLMN" bty="down">TEST</span></a></body></html> com去获取很蛋疼 egg stay EGG STAY .......... 你? 发帖怎么不好使呢。。。 已经有一个现成的EXE(无源码),现在我想把它和我另一个工程的EXE(有源码)合并成一个EXE VC中关于ComboBox不能添加项的问题 [求助]树型图的点击响应操作 请问exe文件在调用dll时,是如何知道哪个头文件对应哪个dll的? 散分 如何编程对word模板进行修改 SetWindowsHookEx 的一个小问题? 简单的问题 创建不是粗框风格(WS_THICKFRAME)的分割条 怎么获取选中的ListView中某一行的值,并且得到这一行中一列的内容 64位WIN7旗舰店版 CGI 初始化ADO错误 GetLastError 126,在命令行下直接调用却问题 在XP下没也问题
↖ ↑ ↗ ← ↔ → ↙ ↓ ↘ ╱ ▁ ╲ ▏ ㊣ ▕ ╲ ▔ ╱
CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2>m_spDispDoc; CComQIPtr<IHTMLElementCollection, &IID_IHTMLElementCollection>m_spDispAnchs; m_spDisp = (IDispatch *)m_ctrlweb.GetDocument(); m_spDispDoc = m_spDisp; m_spDispDoc->get_all(&m_spDispAnchs);
LONG len = 0; m_spDispAnchs->get_length(&len); for (int i = 0; i < len; i++)
{
CComVariant varName; CComVariant varIndex; varIndex = i; CComPtr<IDispatch> pDisp = NULL; m_spDispAnchs->item(varIndex, varName, &pDisp); CComQIPtr<IHTMLElement>m_spDispAnchs1; m_spDispAnchs1 = pDisp; CComBSTR bstrHref; m_spDispAnchs1->get_tagName(&bstrHref); if (i == 5)
{
CComBSTR bstrClassName; m_spDispAnchs1->get_className(&bstrClassName); CString szClassName(bstrClassName); CComBSTR bstrAttribute("data_value"); long flag = 0; VARIANT pRiant; pRiant.bstrVal = SysAllocString(NULL); pRiant.vt = VT_BSTR; m_spDispAnchs1->getAttribute(bstrAttribute, flag, &pRiant); }
}我测试的时候pRiant就是"ABCDEFGHIJKLMN",用其它网页试的话,可能不是第5个,这要你自己查看。另外我测试的网页代码是:<html>
<body>
<a class= >
<span class="xx" data_value="ABCDEFGHIJKLMN" bty="down">TEST</span>
</a>
</body>
</html>