Пример #1
0
        /// <summary>Creates and inserts a new row.</summary>
        public HtmlElement insertRow(int index)
        {
            HtmlElement e = document.createElement("tr") as HtmlElement;

            if (index != -1)
            {
                // Get the row at that index:
                Element r = getRow(index);

                if (r != null)
                {
                    // Insert before it:
                    r.parentNode.insertBefore(e, r);
                    return(e);
                }
            }

            // Insert as last tbody:
            HTMLCollection bodies = tBodies;
            Node           body   = (bodies.length == 0) ? appendChild(document.createElement("tbody")) : bodies[bodies.length - 1];

            // append to that:
            body.appendChild(e);

            return(e);
        }
Пример #2
0
        private static List <Code> GetEmbeddedKKScripts(Document dom, Guid objectId, byte constType)
        {
            List <Code> ScriptList = new List <Code>();

            HTMLCollection embedScript      = dom.getElementsByTagName("script");
            int            itemindexcounter = 0;

            foreach (var item in embedScript.item)
            {
                if (!item.hasAttribute("src"))
                {
                    if (Kooboo.Sites.Render.Components.Manager.IsKScript(item))
                    {
                        string scripttext = item.InnerHtml;
                        if (string.IsNullOrEmpty(scripttext))
                        {
                            continue;
                        }
                        Code script = new Code();
                        script.OwnerObjectId  = objectId;
                        script.OwnerConstType = constType;
                        script.ItemIndex      = itemindexcounter;
                        script.IsEmbedded     = true;
                        script.CodeType       = CodeType.PageScript;
                        script.Body           = scripttext;
                        script.Engine         = item.getAttribute("engine");
                        ScriptList.Add(script);
                    }
                }
                itemindexcounter += 1;
            }
            return(ScriptList);
        }
Пример #3
0
        /// <summary>Gets all child elements with the given tag.</summary>
        /// <param name="selector">The selector string to match.</param>
        /// <returns>The set of all tags with this tag.</returns>
        public HTMLCollection querySelectorAll(string selector, bool one)
        {
            // Create results set:
            HTMLCollection results = new HTMLCollection();

            if (string.IsNullOrEmpty(selector))
            {
                // Empty set:
                return(results);
            }

            // Create the lexer:
            Css.CssLexer lexer = new Css.CssLexer(selector, this);

            // Read a value:
            Css.Value value = lexer.ReadValue();

            // Read the selectors from the value:
            List <Selector> selectors = new List <Selector>();

            Css.CssLexer.ReadSelectors(null, value, selectors);

            // Create a blank event to store the targets, if any:
            CssEvent e = new CssEvent();

            // Perform the selection process:
            querySelectorAll(selectors.ToArray(), results, e, false);

            return(results);
        }
Пример #4
0
        internal static List <Element> FindElementsByDepth(Document doc, int depth)
        {
            HTMLCollection collection = new HTMLCollection();

            _FindByDepth(doc.documentElement, depth, ref collection);
            return(collection.item.ToList());
        }
Пример #5
0
        public void getWrongNestedTags(Node topElement, HTMLCollection col)
        {
            if (topElement.nodeType == enumNodeType.ELEMENT)
            {
                Element element = (Element)topElement;

                if (element != null)
                {
                    bool isInline = inline.Contains(element.tagName.ToLower());

                    if (isInline)
                    {
                        foreach (var item in element.childNodes.item)
                        {
                            getWrongBlockTags(item, col);
                        }
                    }
                    else
                    {
                        foreach (var item in element.childNodes.item)
                        {
                            getWrongNestedTags(item, col);
                        }
                    }
                }
            }
        }
Пример #6
0
        private static List <Style> GetEmbeddedStyles(Document dom, Guid objectId, byte constType)
        {
            List <Style> stylelist = new List <Style>();

            HTMLCollection embedStyle       = dom.getElementsByTagName("style");
            int            itemindexcounter = 0;

            foreach (var item in embedStyle.item)
            {
                Style style = new Style();
                style.OwnerObjectId  = objectId;
                style.OwnerConstType = constType;
                style.ItemIndex      = itemindexcounter;
                style.Body           = item.InnerHtml;
                style.IsEmbedded     = true;
                style.media          = item.getAttribute("media");
                style.Engine         = item.getAttribute("engine");
                if (!string.IsNullOrWhiteSpace(style.Engine))
                {
                    style.Extension = style.Engine;
                }
                stylelist.Add(style);

                itemindexcounter += 1;
            }
            return(stylelist);
        }
        public HTMLCollection GetElementsByName(String name)
        {
            var result = new HTMLCollection();

            GetElementsByName(_children, name, result);
            return(result);
        }
Пример #8
0
 /// <summary>
 /// Creates a new Html document.
 /// </summary>
 internal HTMLDocument()
 {
     _ns = Namespaces.Html;
     forms = new HTMLCollection();
     scripts = new HTMLCollection();
     images = new HTMLCollection();
 }
Пример #9
0
        //Internal for now until connected properly.

        //[DOM("onabort")]
        //internal event EventHandler OnAbort;
        //[DOM("onblur")]
        //internal event EventHandler OnBlur;
        //[DOM("oncanplay")]
        //internal event EventHandler OnCanPlay;
        //[DOM("oncanplaythrough")]
        //internal event EventHandler OnCanPlayThrough;
        //[DOM("onchange")]
        //internal event EventHandler OnChange;
        //[DOM("onclick")]
        //internal event EventHandler OnClick;
        //[DOM("oncontextmenu")]
        //internal event EventHandler OnContextMenu;
        //[DOM("oncopy")]
        //internal event EventHandler OnCopy;
        //[DOM("oncuechange")]
        //internal event EventHandler OnCueChange;
        //[DOM("oncut")]
        //internal event EventHandler OnCut;
        //[DOM("ondblclick")]
        //internal event EventHandler OnDblClick;
        //[DOM("onaondragbort")]
        //internal event EventHandler OnDrag;
        //[DOM("ondragend")]
        //internal event EventHandler OnDragEnd;
        //[DOM("ondragenter")]
        //internal event EventHandler OnDragEnter;
        //[DOM("ondragleave")]
        //internal event EventHandler OnDragLeave;
        //[DOM("ondragover")]
        //internal event EventHandler OnDragOver;
        //[DOM("ondragstart")]
        //internal event EventHandler OnDragStart;
        //[DOM("ondrop")]
        //internal event EventHandler OnDrop;
        //[DOM("ondurationchange")]
        //internal event EventHandler OnDurationChange;
        //[DOM("onemptied")]
        //internal event EventHandler OnEmptied;
        //[DOM("onended")]
        //internal event EventHandler OnEnded;
        //[DOM("onerror")]
        //internal event EventHandler OnError;
        //[DOM("onfocus")]
        //internal event EventHandler OnFocus;
        //[DOM("onfocusin")]
        //internal event EventHandler OnFocusIn;
        //[DOM("onfocusout")]
        //internal event EventHandler OnFocusOut;
        //[DOM("onfullscreenchange")]
        //internal event EventHandler OnFullScreenChange;
        //[DOM("onfullscreenerror")]
        //internal event EventHandler OnFullScreenError;
        //[DOM("oninput")]
        //internal event EventHandler OnInput;
        //[DOM("oninvalid")]
        //internal event EventHandler OnInvalid;
        //[DOM("onkeydown")]
        //internal event EventHandler OnKeyDown;
        //[DOM("onkeypress")]
        //internal event EventHandler OnKeyPress;
        //[DOM("onkeyup")]
        //internal event EventHandler OnKeyUp;
        //[DOM("onload")]
        //internal event EventHandler OnLoad;
        //[DOM("onloadeddata")]
        //internal event EventHandler OnLoadedData;
        //[DOM("onloadedmetadata")]
        //internal event EventHandler OnLoadedMetaData;
        //[DOM("onloadstart")]
        //internal event EventHandler OnLoadStart;
        //[DOM("onmousedown")]
        //internal event EventHandler OnMouseDown;
        //[DOM("onmousemove")]
        //internal event EventHandler OnMouseMove;
        //[DOM("onmouseout")]
        //internal event EventHandler OnMouseOut;
        //[DOM("onmouseover")]
        //internal event EventHandler OnMouseOver;
        //[DOM("onmouseup")]
        //internal event EventHandler OnMouseUp;
        //[DOM("onmousewheel")]
        //internal event EventHandler OnMouseWheel;
        //[DOM("onpaste")]
        //internal event EventHandler OnPaste;
        //[DOM("onpause")]
        //internal event EventHandler OnPause;
        //[DOM("onplay")]
        //internal event EventHandler OnPlay;
        //[DOM("onplaying")]
        //internal event EventHandler OnPlaying;
        //[DOM("onprogress")]
        //internal event EventHandler OnProgress;
        //[DOM("onratechange")]
        //internal event EventHandler OnRateChange;
        //[DOM("onreset")]
        //internal event EventHandler OnReset;
        //[DOM("onscroll")]
        //internal event EventHandler OnScroll;
        //[DOM("onseeked")]
        //internal event EventHandler OnSeeked;
        //[DOM("onseeking")]
        //internal event EventHandler OnSeeking;
        //[DOM("onselect")]
        //internal event EventHandler OnSelect;
        //[DOM("onstalled")]
        //internal event EventHandler OnStalled;
        //[DOM("onsubmit")]
        //internal event EventHandler OnSubmit;
        //[DOM("onsuspend")]
        //internal event EventHandler OnSuspend;
        //[DOM("ontimeout")]
        //internal event EventHandler OnTimeOut;
        //[DOM("ontimeupdate")]
        //internal event EventHandler OnTimeUpdate;
        //[DOM("ontouchcancel")]
        //internal event EventHandler OnTouchCancel;
        //[DOM("ontouchend")]
        //internal event EventHandler OnTouchEnd;
        //[DOM("ontouchmove")]
        //internal event EventHandler OnTouchMove;
        //[DOM("ontouchstart")]
        //internal event EventHandler OnTouchStart;
        //[DOM("onvolumechange")]
        //internal event EventHandler OnVolumeChange;
        //[DOM("onwaiting")]
        //internal event EventHandler OnWaiting;

        #endregion

        #region ctor

        /// <summary>
        /// Creates a new Html document.
        /// </summary>
        internal HTMLDocument()
        {
            _contentType = MimeTypes.Xml;
            _ns          = Namespaces.Html;
            _all         = new HTMLCollection(this);
            _queue       = new Task(() => { });
        }
Пример #10
0
 internal HTMLMapElement()
 {
     _name   = Tag;
     _areas  = new List <Element>();
     _images = new List <Element>();
     Areas   = new HTMLCollection(_areas);
     Images  = new HTMLCollection(_images);
 }
Пример #11
0
 /// <summary>
 /// Creates a new Html document.
 /// </summary>
 internal HTMLDocument()
 {
     _contentType = MimeTypes.Xml;
     _ns          = Namespaces.Html;
     _forms       = new HTMLCollection();
     _scripts     = new HTMLCollection();
     _images      = new HTMLCollection();
 }
Пример #12
0
 /// <summary>
 /// Creates a new Html document.
 /// </summary>
 internal HTMLDocument()
 {
     _contentType = MimeTypes.Xml;
     _ns = Namespaces.Html;
     _forms = new HTMLCollection();
     _scripts = new HTMLCollection();
     _images = new HTMLCollection();
 }
Пример #13
0
        public static List <Element> ToList(HTMLCollection c)
        {
            var l = new List <Element>();

            for (uint i = 0; i < c.length; i++)
            {
                l.Add(c.item(i));
            }
            return(l);
        }
Пример #14
0
        /// <summary>Gets the first element which matches the given selector.</summary>
        public Element querySelector(string selector)
        {
            HTMLCollection results = querySelectorAll(selector, true);

            if (results == null || results.length == 0)
            {
                return(null);
            }

            return(results[0] as Element);
        }
Пример #15
0
 void RenderList(HTMLCollection children, List list)
 {
     foreach (var child in children)
     {
         if (child.TagName == "li")
         {
             var li      = new ListItem();
             var section = new Section();
             li.Blocks.Add(section);
             Render(child, section);
             list.ListItems.Add(li);
         }
     }
 }
Пример #16
0
        public static Element GetEmbeddedByItemIndex(Document dom, int itemindex, string tagName)
        {
            HTMLCollection embedStyle       = dom.getElementsByTagName(tagName);
            int            itemindexcounter = 0;

            foreach (var item in embedStyle.item)
            {
                if (itemindexcounter == itemindex)
                {
                    return(item);
                }
                itemindexcounter += 1;
            }
            return(null);
        }
Пример #17
0
        /// <summary>Gets a submit button. Null if none were found.</summary>
        public HtmlElement GetSubmitButton()
        {
            // Get all inputs:
            HTMLCollection allInputs = getElementsByTagName("input");

            // Are any a submit?
            foreach (Element element in allInputs)
            {
                if (element.getAttribute("type") == "submit")
                {
                    return(element as HtmlElement);
                }
            }

            return(null);
        }
Пример #18
0
        /// <summary>
        /// Gets a list of HTML elements given by their name attribute.
        /// </summary>
        /// <param name="children">The list to investigate.</param>
        /// <param name="name">The name attribute's value.</param>
        /// <param name="result">The result collection.</param>
        void GetElementsByName(NodeList children, String name, HTMLCollection result)
        {
            for (int i = 0; i < _children.Length; i++)
            {
                if (_children[i] is HTMLElement)
                {
                    var element = (HTMLElement)_children[i];

                    if (element.GetAttribute("name") == name)
                    {
                        result.Add(element);
                    }

                    GetElementsByName(element.ChildNodes, name, result);
                }
            }
        }
        public override Object NamedItem(String name)
        {
            var result = new HTMLCollection();

            for (int i = 0; i < _entries.Count; i++)
            {
                if (_entries[i].Id == name || _entries[i].GetAttribute("name") == name)
                    result.Add(_entries[i]);
            }

            if (result.Length == 0)
                return null;
            else if (result.Length == 1)
                return result[0];

            return result;
        }
Пример #20
0
        internal override void start()
        {
            // Pause it now!
            Timeline tl = track.timeline;

            tl.setPause(true);

            if (tl.backwards)
            {
                tl.currentTime = 1f - computedStart;
            }
            else
            {
                tl.currentTime = computedStart;
            }

            // Hook up cue elements now:
            HTMLCollection targs = cuedBy;

            if (targs != null && eventName != null)
            {
                foreach (Element e in targs)
                {
                    Dom.EventListener <Dom.Event> d = new Dom.EventListener <Dom.Event>(delegate(Dom.Event ev){
                        // Cued by the cue point!
                        element.cue();
                    });

                    CueElementData ced = new CueElementData(eventName, d, e);

                    // Add to a list on the timeline:
                    if (track.timeline.cueElements == null)
                    {
                        track.timeline.cueElements = new List <CueElementData>();
                    }

                    track.timeline.cueElements.Add(ced);

                    // Add listener:
                    e.addEventListener(eventName, d);
                }
            }

            base.start();
        }
Пример #21
0
        public static void ComputeEmbed(Document doc, SiteDb sitedb, Guid objectId, byte constType)
        {
            HTMLCollection embedElement = doc.getElementsByTagName("embed");

            List <string> UrlList = new List <string>();

            foreach (var item in embedElement.item)
            {
                string fileurl = DomUrlService.GetLinkOrSrc(item);

                if (string.IsNullOrEmpty(fileurl))
                {
                    continue;
                }
                UrlList.Add(fileurl);
            }
            ComputeUrlRelation(sitedb, objectId, constType, UrlList, ConstObjectType.File);
        }
Пример #22
0
        public void CheckEmptyTag(SiteObject siteobject, Kooboo.Dom.Document dom)
        {
            if (siteobject == null || dom == null)
            {
                return;
            }
            string         name = Hardcoded.GetValue("Empty tag", session.context);
            HTMLCollection col  = new HTMLCollection();

            getEmptyTag(dom.body, col);

            foreach (var item in col.item)
            {
                string message = HttpUtility.HtmlEncode(item.OuterHtml);
                message += DiagnosisHelper.DisplayUsedBy(session.context, siteobject);
                session.AddMessage(name, message, MessageType.Warning);
            }
        }
Пример #23
0
        /// <summary>
        /// process the embedded style.
        /// </summary>
        /// <param name="context"></param>
        private void ProcessInPage(AnalyzerContext context)
        {
            HTMLCollection embedStyle = context.Dom.getElementsByTagName("style");

            //int itemindexcounter = 0;
            foreach (var item in embedStyle.item)
            {
                string csstext = item.InnerHtml;

                if (string.IsNullOrEmpty(csstext))
                {
                    continue;
                }
                //var style = new Style
                //{
                //    IsEmbedded = true,
                //    OwnerObjectId = context.ObjectId,
                //    OwnerConstType = context.ObjectType,
                //    ItemIndex = itemindexcounter,
                //    Name = UrlHelper.FileName(context.AbsoluteUrl)
                //};

                CssManager.ProcessResource(ref csstext, context.AbsoluteUrl, context.DownloadManager, context.ObjectId);

                //style.Body = csstext;
                //context.SiteDb.Styles.AddOrUpdate(style, context.DownloadManager.UserId);
                //itemindexcounter += 1;

                if (item.InnerHtml != csstext)
                {
                    var change = new AnalyzerUpdate()
                    {
                        StartIndex = item.location.openTokenEndIndex + 1,
                        EndIndex   = item.location.endTokenStartIndex - 1,
                        NewValue   = csstext
                    };

                    if (change.EndIndex > change.StartIndex)
                    {
                        context.Changes.Add(change);
                    }
                }
            }
        }
Пример #24
0
        public void CheckWrongNestedTag(SiteObject siteobject, Kooboo.Dom.Document dom)
        {
            if (siteobject == null || dom == null)
            {
                return;
            }
            string         name = Hardcoded.GetValue("Wrong nested tag", session.context);
            HTMLCollection col  = new HTMLCollection();

            getWrongNestedTags(dom.body, col);

            foreach (var item in col.item)
            {
                string message = GetTagInfo(item);

                message += DiagnosisHelper.DisplayUsedBy(session.context, siteobject);
                session.AddMessage(name, message, MessageType.Warning);
            }
        }
Пример #25
0
        private void ProcessExternal(AnalyzerContext Context)
        {
            HTMLCollection styletags = Context.Dom.getElementsByTagName("link");

            foreach (var item in styletags.item)
            {
                if (item.hasAttribute("rel") && item.getAttribute("rel").ToLower().Contains("stylesheet"))
                {
                    string itemurl = Service.DomUrlService.GetLinkOrSrc(item);

                    if (!string.IsNullOrEmpty(itemurl))
                    {
                        /// itemurl = TransferHelper.TrimQuestionMark(itemurl);

                        string absoluteUrl = UrlHelper.Combine(Context.AbsoluteUrl, itemurl);

                        bool issamehost = UrlHelper.isSameHost(Context.OriginalImportUrl, absoluteUrl);

                        string relativeurl = UrlHelper.RelativePath(absoluteUrl, issamehost);

                        if (itemurl != relativeurl)
                        {
                            string oldstring = Kooboo.Sites.Service.DomService.GetOpenTag(item);
                            string newstring = oldstring.Replace(itemurl, relativeurl);
                            Context.Changes.Add(new AnalyzerUpdate()
                            {
                                StartIndex = item.location.openTokenStartIndex,
                                EndIndex   = item.location.openTokenEndIndex,
                                NewValue   = newstring
                            });
                        }

                        Context.DownloadManager.AddTask(new Download.DownloadTask()
                        {
                            AbsoluteUrl   = absoluteUrl,
                            RelativeUrl   = relativeurl,
                            ConstType     = ConstObjectType.Style,
                            OwnerObjectId = Context.ObjectId
                        });
                    }
                }
            }
        }
Пример #26
0
        private static void _FindByDepth(Node topEl, int depth, ref HTMLCollection col)
        {
            if (topEl.nodeType == enumNodeType.ELEMENT)
            {
                var el = topEl as Element;

                if (el.depth == depth)
                {
                    col.Add(el);
                }
                else if (topEl.depth < depth)
                {
                    foreach (var item in topEl.childNodes.item)
                    {
                        _FindByDepth(item, depth, ref col);
                    }
                }
            }
        }
Пример #27
0
        /// <summary>
        /// compute html tag inline css.
        /// </summary>
        /// <param name="doc"></param>
        /// <param name="sitedb"></param>
        /// <param name="objectId"></param>
        /// <param name="constType"></param>
        public static void ComputeInlineCss(Document doc, SiteDb sitedb, Guid objectId, byte constType, string baseurl)
        {
            HTMLCollection elements = doc.getElementByAttribute("style");

            List <CmsCssRule> cmsrules = new List <CmsCssRule>();

            foreach (var item in elements.item)
            {
                string style = item.getAttribute("style");

                if (!string.IsNullOrEmpty(style))
                {
                    CmsCssRule rule = new CmsCssRule();
                    rule.OwnerObjectId        = objectId;
                    rule.OwnerObjectConstType = constType;
                    rule.IsInline             = true;
                    rule.CssText       = style;
                    rule.KoobooId      = Service.DomService.GetKoobooId(item);
                    rule.KoobooOpenTag = Service.DomService.GetOpenTag(item);
                    rule.DisplayName   = Service.DomService.GetElementDisplayName(item);
                    var decls = Kooboo.Dom.CSS.CSSSerializer.deserializeDeclarationBlock(style);
                    rule.Properties = decls.item.Select(o => o.propertyname).ToList();
                    cmsrules.Add(rule);
                }
            }

            /// get old relation.
            List <CmsCssRule> oldrules = sitedb.CssRules.Query.Where(o => o.OwnerObjectId == objectId && o.IsInline).SelectAll();

            foreach (var item in oldrules)
            {
                if (!cmsrules.Where(o => o.Id == item.Id).Any())
                {
                    sitedb.CssRules.Delete(item.Id, false);
                }
            }

            foreach (var item in cmsrules)
            {
                sitedb.CssRules.AddOrUpdate(item, default(Guid), false);
                Relation.CmsCssRuleRelation.ComputeUrl(item, baseurl, sitedb);
            }
        }
Пример #28
0
        private void getEmptyTag(Node topElement, HTMLCollection collection)
        {
            if (topElement.nodeType == enumNodeType.ELEMENT)
            {
                Element element = (Element)topElement;

                if (IsEmptyTag(element))
                {
                    collection.Add(element);
                }
                else
                {
                    foreach (var item in topElement.childNodes.item)
                    {
                        getEmptyTag(item, collection);
                    }
                }
            }
        }
Пример #29
0
        private void getTooDepthElements(Node topElement, HTMLCollection collection)
        {
            if (topElement.nodeType == enumNodeType.ELEMENT)
            {
                Element element = (Element)topElement;

                if (element.depth >= 12)
                {
                    collection.Add(element);
                }
                else
                {
                    foreach (var item in topElement.childNodes.item)
                    {
                        getTooDepthElements(item, collection);
                    }
                }
            }
        }
Пример #30
0
        public void CheckDepth(SiteObject siteobject, Kooboo.Dom.Document dom)
        {
            if (siteobject == null || dom == null)
            {
                return;
            }
            string name = Hardcoded.GetValue("Element too deep", session.context);

            HTMLCollection col = new HTMLCollection();

            getTooDepthElements(dom.documentElement, col);

            foreach (var item in col.item)
            {
                string message = GetTagInfo(item);

                message += DiagnosisHelper.DisplayUsedBy(session.context, siteobject);
                session.AddMessage(name, message, MessageType.Warning);
            }
        }
Пример #31
0
        public void getOutdateTags(Node topElement, HTMLCollection collection)
        {
            if (topElement.nodeType == enumNodeType.ELEMENT)
            {
                Element element = (Element)topElement;

                if (element != null)
                {
                    if (element.tagName != null && outdatetags.Contains(element.tagName.ToLower()))
                    {
                        collection.Add(element);
                    }

                    foreach (var item in topElement.childNodes.item)
                    {
                        getOutdateTags(item, collection);
                    }
                }
            }
        }
Пример #32
0
        public static HTMLCollection GetElementsByTagName(List <Node> nodelist, string tagName)
        {
            HTMLCollection cols = new HTMLCollection();

            foreach (var item in nodelist)
            {
                if (item is Element)
                {
                    Element e = item as Element;

                    var col = e.getElementsByTagName(tagName).item;
                    if (col != null && col.Count > 0)
                    {
                        cols.item.AddRange(col);
                    }
                }
            }

            return(cols);
        }
Пример #33
0
        /// <summary>
        /// Get all external style urls
        /// </summary>
        /// <param name="dom"></param>
        /// <param name="pageOrBaseUrl"></param>
        /// <returns></returns>
        public static List <string> GetAllExternalStyleUrls(Document dom, string pageOrBaseUrl)
        {
            List <string> urlList = new List <string>();

            HTMLCollection styletags = dom.getElementsByTagName("link");

            foreach (var item in styletags.item)
            {
                if (item.hasAttribute("rel") && item.getAttribute("rel").ToLower().Contains("stylesheet"))
                {
                    string itemurl = item.getAttribute("href");

                    if (!string.IsNullOrEmpty(item.getAttribute("href")))
                    {
                        string url = UrlHelper.Combine(pageOrBaseUrl, itemurl);
                        urlList.Add(url);
                    }
                }
            }

            return(urlList);
        }
Пример #34
0
        public HTMLCollection getElementsByClassName(string classNames)
        {
            HTMLCollection elments = new HTMLCollection();

            foreach (var child in childNodes)
            {
                if ((child as Element).className.NoncaseEqual(classNames))
                {
                    elments.Add(child as Element);
                }
                elments.AddRange((child as Element).getElementsByClassName(classNames));
            }
            return elments;
        }
Пример #35
0
        public HTMLCollection getElementsByTagNameNS(string nspace, string localName)
        {
            HTMLCollection elments = new HTMLCollection();

            foreach (Node child in childNodes)
            {
                if (child.nodeName.NoncaseEqual(localName) &&
                    (child as Element).namespaceURI.NoncaseEqual(nspace))
                {
                    elments.Add(child as Element);
                }
                elments.AddRange((child as Element).getElementsByTagNameNS(nspace, localName));
            }
            return elments;
        }
 internal HTMLMapElement()
 {
     _name = Tag;
     areas = new HTMLCollection();
     images = new HTMLCollection();
 }
Пример #37
0
        /// <summary>
        /// Gets a list of HTML elements given by their name attribute.
        /// </summary>
        /// <param name="children">The list to investigate.</param>
        /// <param name="name">The name attribute's value.</param>
        /// <param name="result">The result collection.</param>
        void GetElementsByName(NodeList children, String name, HTMLCollection result)
        {
            for (int i = 0; i < _children.Length; i++)
            {
                if (_children[i] is HTMLElement)
                {
                    var element = (HTMLElement)_children[i];

                    if (element.GetAttribute("name") == name)
                        result.Add(element);

                    GetElementsByName(element.ChildNodes, name, result);
                }
            }
        }
Пример #38
0
 public HTMLCollection GetElementsByName(String name)
 {
     var result = new HTMLCollection();
     GetElementsByName(_children, name, result);
     return result;
 }
 void RenderList(HTMLCollection children, List list)
 {
     foreach (var child in children)
     {
         if (child.TagName == "li")
         {
             var li = new ListItem();
             var section = new Section();
             li.Blocks.Add(section);
             Render(child, section);
             list.ListItems.Add(li);
         }
     }
 }