Почему моя функция просто пропускает код, который использует HtmlAgilityPack? - PullRequest
0 голосов
/ 28 января 2011

Первая половина моей функции не использует htmlagilitypack, и я знаю, что она работает так, как я хочу. однако функция завершает работу, ничего не делая со второй половиной и не возвращает ошибок. Пожалуйста, помогите

void classListHtml()
    {

        HtmlElementCollection elements = browser.Document.GetElementsByTagName("tr");
        html = "<table>";
        int i = 0;
        foreach (HtmlElement element in elements)
        {
            if (element.InnerHtml.Contains("Marking Period 2") && i != 0)//will be changed to current assignment reports later
            {
                html += "" + element.OuterHtml;
            }
            else if (i == 0)
            {
                i++;
                continue;
            }
            else
                continue;

        }
        html += "" + "</table>";
        myDocumentText(html);


        //---------THIS IS WHERE IT STOPS DOING WHAT I WANT-----------
        //removing color and other attributes
        HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
        doc.Load(html);
        HtmlNodeCollection nodeCollection = doc.DocumentNode.SelectNodes("//tr");//xpath expression for all row nodes
        string[] blackListAttributes={"width", "valign","bgcolor","align","class"};

        foreach(HtmlNode node in nodeCollection)//for each row node
        {
            HtmlAttributeCollection rows = node.Attributes;// the attributes of each row node

            foreach (HtmlAttribute attribute in rows)//for each attribute
            {
                if (blackListAttributes.Contains(attribute.Name))//if its attribute name is in the blacklist, remove it.
                    attribute.Remove();
            }
        }

        html = doc.ToString();
        myDocumentText(html);//updating browser with new html


    }

Ответы [ 2 ]

0 голосов
/ 28 января 2011
myDocumentText(html);

Что делает этот метод?

Я предполагаю, что у вас есть исключение, которое генерируется где-то в этом методе, и оно либо проглатывается, либо ваша среда отладки настроена так, чтобы не нарушать пользовательские исключения.

Можете ли вы опубликовать код в этом методе?

0 голосов
/ 28 января 2011

HtmlDocument.ToString() не отправляет обратно текст, если вы не изменили исходный код, возможно, вы ищете HtmlDocument.DocumentNode.OuterXml или Document.Save( ... text ...)?

...