예제 #1
0
        private static bool matchClass(Element element, classSelector classselector)
        {
            if (!string.IsNullOrEmpty(classselector.elementE) && classselector.elementE != "*")
            {
                if (element.tagName != classselector.elementE.ToLower())
                {
                    return(false);
                }
            }

            if (element.hasAttribute("class"))
            {
                string classvalue = element.getAttribute("class");

                if (string.IsNullOrEmpty(classvalue) && classselector.classList.Count > 0)
                {
                    return(false);
                }

                foreach (var item in classselector.classList)
                {
                    if (!classvalue.Contains(item))
                    {
                        return(false);
                    }
                }
            }
            else
            {
                return(false);
            }

            return(true);
        }
예제 #2
0
        private void parseClassSelector()
        {
            classSelector classselector = new classSelector();

            classselector.wholeText = _selectorText;


            if (_buffer.Length > 0)
            {
                classselector.elementE = AppendCleanBuffer(_buffer);
            }


            char current = ReadNext();

            while (!stop)
            {
                if (current == '.')
                {
                    classselector.classList.Add(AppendCleanBuffer(_buffer));
                    current = ReadNext();
                }
                else
                {
                    _buffer.Append(current);
                    current = ReadNext();
                }
            }

            if (_buffer.Length > 0)
            {
                classselector.classList.Add(AppendCleanBuffer(_buffer));
            }

            simple = classselector;
        }