private IHTMLMetaElement GetElement(string metaDataName) { metaDataName = metaDataName.ToUpper(CultureInfo.InvariantCulture); if (!m_metaElementsGenerated) { // Get the meta tags IEnumerator tagEnumerator = MetaDataElements.GetEnumerator(); // Go through all the tags in the head and pull out the meta tags while (tagEnumerator.MoveNext()) { IHTMLMetaElement thisTag = (IHTMLMetaElement)tagEnumerator.Current; if (thisTag.name != null) { if (!m_metaElements.ContainsKey(thisTag.name)) { m_metaElements.Add(thisTag.name.ToUpper(CultureInfo.InvariantCulture), thisTag); } } else if (thisTag.httpEquiv != null) { if (!m_metaElements.ContainsKey(thisTag.httpEquiv)) { m_metaElements.Add(thisTag.httpEquiv.ToUpper(CultureInfo.InvariantCulture), thisTag); } } } m_metaTableGenerated = true; } return((IHTMLMetaElement)m_metaElements[metaDataName]); }
/// <summary> /// Gets a particular metadata tag's value. Return null if the meta tag doesn't exist /// in this document. /// </summary> /// <param name="metaDataName">The name of the metadata element to retrieve</param> /// <returns>The value</returns> private string GetMetaDataValue(string metaDataName) { if (!m_metaTableGenerated) { // Get the meta tags IEnumerator tagEnumerator = MetaDataElements.GetEnumerator(); // Go through all the tags in the head and pull out the meta tags while (tagEnumerator.MoveNext()) { IHTMLElement thisTag = (IHTMLElement)tagEnumerator.Current; // in the meta tags, grab the attributes and put them in the table foreach (string nameAttribute in NAME_ATTRIBUTES) { string name = (string)thisTag.getAttribute(nameAttribute, 0); if (name != null) { name = name.ToUpper(CultureInfo.InvariantCulture); // for case insensitive comparison string content = (string)thisTag.getAttribute("CONTENT", 0); if (!m_metaTags.ContainsKey(name)) { m_metaTags.Add(name, content); break; } } } } m_metaTableGenerated = true; } if (m_metaTags.Contains(metaDataName)) { return((string)m_metaTags[metaDataName]); } else { return(null); } }