コード例 #1
0
        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]);
        }
コード例 #2
0
        /// <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);
            }
        }