当前位置: 首页>>代码示例>>C++>>正文


C++ IDOMElement::getAttribute方法代码示例

本文整理汇总了C++中IDOMElement::getAttribute方法的典型用法代码示例。如果您正苦于以下问题:C++ IDOMElement::getAttribute方法的具体用法?C++ IDOMElement::getAttribute怎么用?C++ IDOMElement::getAttribute使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IDOMElement的用法示例。


在下文中一共展示了IDOMElement::getAttribute方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: UpdateOutLinks

void CSiteFile::UpdateOutLinks()
{
	try
	{
		WCHAR sql[256];
		swprintf(sql, L"DELETE FROM links WHERE file_id = %d", m_dbid);

		_variant_t	va;
		m_pWebSite->m_siteDataConnection->Execute(sql, &va, ADODB::adCmdText);
	}
	catch (_com_error &e)
	{
		DbError(e);
	}

	TCHAR ext[_MAX_EXT];
	_splitpath(m_wfd.cFileName, NULL, NULL, NULL, ext);

	if (!stricmp(ext, ".htm") ||
		!stricmp(ext, ".html") ||
		!stricmp(ext, ".asp") ||
		!stricmp(ext, ".svg"))
	{
		CComQIPtr<IDOMDocumentContainer> documentcnt;
		documentcnt.CoCreateInstance(CLSID_DOMDocumentContainer);

		CSiteDir* pDir = (CSiteDir*)m_parent;

		CUString pathName = GetFullPathName();

		VARIANT_BOOL bsuccess;
		documentcnt->load(_bstr_t(pathName), &bsuccess);

		if (bsuccess)
		{
			CComQIPtr<IDOMDocument> document;
			documentcnt->get_document(&document);
			if (document != NULL)
			{
				{ // Links
					CComQIPtr<IDOMElement> documentElement;
					document->get_documentElement(&documentElement);

					CComQIPtr<IMMSXHTMLDocument> htmldocument;
					CComQIPtr<ISVGDocument> svgdocument;

					CArray<IDOMElement*,IDOMElement*> elements;

					if (htmldocument = document)
					{
						CollectElementTags(L"a", elements, documentElement);
					}
					else if (svgdocument = document)
					{
						CollectElementTags(L"a", elements, documentElement);
					}

					for (int i = 0; i < elements.GetSize(); i++)
					{
						IDOMElement* element = elements[i];

						BSTR bhref;

						if (htmldocument)
						{
							element->getAttribute(L"href", &bhref);
						}
						else if (svgdocument)
						{
							// TODO, use getAttributeNS
							element->getAttribute(L"xlink:href", &bhref);
						}

						_bstr_t href = _bstr_t(bhref, false);
						if (href.length())
						{
							char oldcwd[_MAX_PATH];
							_getcwd(oldcwd, _MAX_PATH);

							chdir(pDir->m_pathName);
							char fullpath[_MAX_PATH];
							_fullpath(fullpath, href, _MAX_PATH);

							chdir(oldcwd);

							CSiteFile* pHrefFile = (CSiteFile*)m_pWebSite->m_pRootDir->FindFilePathName(fullpath, 2);

							if (pHrefFile)
							{
								try
								{
									WCHAR sql[256];
									swprintf(sql, L"INSERT INTO links (file_id, out_link_id) VALUES ('%d', %d)", m_dbid, pHrefFile->m_dbid);

									_variant_t	va;
									m_pWebSite->m_siteDataConnection->Execute(sql, &va, ADODB::adCmdText);
								}
								catch (_com_error &e)
								{
									DbError(e);
//.........这里部分代码省略.........
开发者ID:sigurdle,项目名称:FirstProject2,代码行数:101,代码来源:WebSite_old.cpp


注:本文中的IDOMElement::getAttribute方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。