Подавить теги из HTML с помощью AgilityHTMLPack - PullRequest
0 голосов
/ 04 августа 2020

Мне нужна помощь, потому что я не привык работать с HTML. Я показываю веб-документ из своего кода, веб-документ читает файл HTML, содержащий некоторые изображения. Каждый раз, непосредственно перед тегом Image, я наблюдал два тега, которые создают неправильные символы. Пример был бы лучше.

<p ><br clear=all> </span>
<img border=0 width=265 height=105 id="Picture 84856"
   src="Test_HTML/image272.jpg"></p>

печать частично правильная, потому что она показывает изображения и много неправильных символов ÂÂÂÂÂÂÂÂÂÂ. Я решил попробовать обрезать теги.

Я не знаю, как это сделать. Возможно, я совершенно ошибаюсь, но думаю, это хорошее начало, не так ли? Мой тест на подавление этих тегов в узле Html:

        public void ShowTag(string tag)
    {
       
         string innerHtml= "//div[@id='"+tag+ "']";
        string inner = "//p";
        string brToRemove = "//br";
        string spanToRemove = "//span";
        

        
        var nodes = document.DocumentNode.SelectSingleNode(innerHtml);
        bool br_deleted = false;
        foreach (HtmlNode nd in nodes.SelectNodes(inner))
        {
          
            foreach (HtmlNode child in nd.ChildNodes)
            {
                if (child.Name == "br")
                {
                    int a = 0;
                    a++;
                 
                    
                    child.ParentNode.RemoveChild(child);
                    br_deleted = true;
                }
                if(child.Name=="span")
                {
                    int b = 0;
                    b++;
                    if (br_deleted == true)
                    {
                      
                        //nd.ParentNode.RemoveChild(child);
                        child.Remove();
                        br_deleted = false;
                    }
                    
                }
                        
            }
                        
        }

, но я не могу удалить дочерний элемент, у вас есть идеи?

1 Ответ

0 голосов
/ 10 августа 2020

Я обнаружил, откуда возникла проблема: при выборе хорошего узла мне нужно было добавить заголовки, чтобы я мог идентифицировать кодировку.

            string innerHtml = "//div[@id='" + tag + "']";
            string inner = "//p";                              
            webbrowser.Navigate("about:blank");
            LoadDocument();
            HtmlNode nodes = document.DocumentNode.SelectSingleNode(innerHtml);
            HtmlNode head = document.DocumentNode.SelectSingleNode("/html/head");

            head.AppendChild(nodes);

            webbrowser.NavigateToString(head.InnerHtml);
...