コード例 #1
0
        public void MixedAttributes()
        {
            string input = "<name attr1=\"value\" attr2 attr3=\'\'>";

            TextFormatter formatter = new TextFormatter(input);

            NormalTagParser parser = new NormalTagParser(formatter);

            if (parser.CanParse())
            {
                parser.Parse();
            }

            HtmlDocumentNode node = parser.ParsedNode;

            Assert.AreEqual("name", node.Name);
            Assert.AreEqual(3, node.Attributes.Count);
            Assert.AreEqual("attr1", node.Attributes[0].Name);
            Assert.AreEqual("attr2", node.Attributes[1].Name);
            Assert.AreEqual("attr3", node.Attributes[2].Name);
            Assert.AreEqual("value", node.Attributes[0].Value);
            Assert.AreEqual(null, node.Attributes[1].Value);
            Assert.AreEqual("", node.Attributes[2].Value);
            Assert.AreEqual(1, node.Flags.Count);
            Assert.AreEqual(true, node.Flags.Contains(Flags.NormalTag));
        }
コード例 #2
0
 private void Initialize()
 {
     _textFormatter = new TextFormatter(_documentHtml);
     RootNode       = new HtmlDocumentNode()
     {
         Name = "#root"
     };
     _currentParent     = RootNode;
     _normalTagParser   = new NormalTagParser(_textFormatter);
     _specialTagParsers = new List <SpecialTagParser>()
     {
         new SpecialTagParser("#doctype", _textFormatter, new SpecialTagParserConfiguration("<!doctype ", ">", false)),
         new SpecialTagParser("#conditional", _textFormatter, new SpecialTagParserConfiguration("<![if", "<![endif]>", false)),
         new SpecialTagParser("#conditionalcomment", _textFormatter, new SpecialTagParserConfiguration("<!--[if", "<![endif]-->", false)),
         new SpecialTagParser("#comment", _textFormatter, new SpecialTagParserConfiguration("<!--", "-->", false)),
         new SpecialTagParser("#jscomment", _textFormatter, new SpecialTagParserConfiguration("/*", "*/", false)),
         new SpecialTagParser("#xmlprocessinginstruction", _textFormatter, new SpecialTagParserConfiguration("<?", "?>", false)),
         new SpecialTagParser("script", _textFormatter, new SpecialTagParserConfiguration("<script", "</script>", false))
     };
 }
コード例 #3
0
        public void NormalTag()
        {
            string input = "<name>";

            TextFormatter formatter = new TextFormatter(input);

            NormalTagParser parser = new NormalTagParser(formatter);

            if (parser.CanParse())
            {
                parser.Parse();
            }

            HtmlDocumentNode node = parser.ParsedNode;

            Assert.AreEqual("name", node.Name);
            Assert.AreEqual(0, node.Attributes.Count);
            Assert.AreEqual(1, node.Flags.Count);
            Assert.AreEqual(true, node.Flags.Contains(Flags.NormalTag));
        }
コード例 #4
0
        public void AttributesWithQuotesWithoutValues()
        {
            string input = "<name attr=\"\" attr2=\'\'>";

            TextFormatter formatter = new TextFormatter(input);

            NormalTagParser parser = new NormalTagParser(formatter);

            if (parser.CanParse())
            {
                parser.Parse();
            }

            HtmlDocumentNode node = parser.ParsedNode;

            Assert.AreEqual("name", node.Name);
            Assert.AreEqual(2, node.Attributes.Count);
            Assert.AreEqual("attr", node.Attributes[0].Name);
            Assert.AreEqual("attr2", node.Attributes[1].Name);
            Assert.AreEqual("", node.Attributes[0].Value);
            Assert.AreEqual("", node.Attributes[1].Value);
            Assert.AreEqual(1, node.Flags.Count);
            Assert.AreEqual(true, node.Flags.Contains(Flags.NormalTag));
        }