예제 #1
0
        public void Issue_02()
        {
            // HTML パーサーインスタンス
            HtmlTools.HtmlParser p = new HtmlTools.HtmlParser();

            // 入力のHTML
            string html =
            @"<html>
            <head>
            </head>
            <body>
            hello world.
            <div class='test'>div-test<br><unknwontag></div>
            <br>
            </body>
            </html>";

            // 文字列を解析してDOMにする
            var dom = p.ParseHtmlString(html);

            var body = dom.GetElementsByTagName("body");

            Assert.IsTrue(body != null);
            Assert.AreEqual(1, body.Count());
        }
예제 #2
0
        public void Issue_03()
        {
            // https://github.com/kkato233/simplehtmlparser/issues/3
            // 属性を書き換えたら ' が " に代わってしまった

            // HTML パーサーインスタンス
            HtmlTools.HtmlParser p = new HtmlTools.HtmlParser();

            // 入力のHTML
            string html =
            @"<html>
            <head>
            </head>
            <body>
            <div class='test'></div>
            <br>
            </body>
            </html>";

            // 文字列を解析してDOMにする
            var dom = p.ParseHtmlString(html);

            var div = dom.GetElementsByTagName("div").FirstOrDefault();

            Assert.IsNotNull(div);
            div.SetAttributes("class", "test2");

            string outHtml = dom.ToHtmlString();

            // オリジナルの ' がそのまま ' になる事を確認
            Assert.IsTrue(outHtml.Contains("<div class='test2'>"),outHtml);
        }
예제 #3
0
        public void Test01_SimpleTest()
        {
            // HTML パーサーインスタンス
            HtmlTools.HtmlParser p = new HtmlTools.HtmlParser();

            // 入力のHTML
            string html =
            @"<html>
            <head>
            </head>
            <body>
            hello world.
            <div class='test'>div-test<br><unknwontag></div>
            <br>
            </body>
            </html>";

            // 文字列を解析してDOMにする
            var dom = p.ParseHtmlString(html);

            Assert.IsNotNull(dom);

            // DIV タグを探す。大文字小文字は関係なく探す
            var divList = dom.GetElementsByTagName("Div");
            Assert.IsNotNull(divList);
            Assert.AreEqual(1, divList.Count());

            // div タグを選択
            var div = divList.First();

            // div タグの InnerHtml を書き換え
            div.InnerHtml = "";

            // DOM の HTML を取得する
            string html2 = dom.ToHtmlString();

            // DIV の内容が書き換わっている事の確認
            Assert.IsTrue(html2.Contains("<div class='test'></div>"));
        }
예제 #4
0
        public void Issue_03_A()
        {
            // https://github.com/kkato233/simplehtmlparser/issues/3
            // 属性を書き換えたら ' が " に代わってしまった

            // HTML パーサーインスタンス
            HtmlTools.HtmlParser p = new HtmlTools.HtmlParser();

            // 入力のHTML
            string html = "<div class='te\"st'></div>";

            // 文字列を解析してDOMにする
            var dom = p.ParseHtmlString(html);

            var div = dom.GetElementsByTagName("div").FirstOrDefault();

            Assert.IsNotNull(div);
            div.SetAttributes("class", "let's");

            string outHtml = dom.ToHtmlString();
            Assert.IsTrue(outHtml.Contains("<div class=\"let's\">"), outHtml);
        }
예제 #5
0
        public void Issue_03_C()
        {
            // https://github.com/kkato233/simplehtmlparser/issues/3
            // 属性を書き換えたら ' が " に代わってしまった

            // HTML パーサーインスタンス
            HtmlTools.HtmlParser p = new HtmlTools.HtmlParser();

            // 入力のHTML
            string html = "<div data='\"'></div>";

            // 文字列を解析してDOMにする
            var dom = p.ParseHtmlString(html);

            var div = dom.GetElementsByTagName("div").FirstOrDefault();

            Assert.IsNotNull(div);
            div.SetAttributes("data", "\"dat\"");

            string outHtml = dom.ToHtmlString();

            // 明示的に " で囲んで指定するとそのまま設定される
            Assert.IsTrue(outHtml.Contains("<div data=\"dat\">"), outHtml);

            // デフォルトは ' で囲まれる
            div.SetAttributes("data", "dat");
            outHtml = dom.ToHtmlString();
            Assert.IsTrue(outHtml.Contains("<div data='dat'>"), outHtml);

            div.SetAttributes("data","if\"g");
            outHtml = dom.ToHtmlString();

            // " を設定すると自動的に ' で囲まれる
            Assert.IsTrue(outHtml.Contains("<div data='if\"g'>"), outHtml);
        }