html 민첩성 팩 어린이 제거

c# html-agility-pack

문제

특정 ID가있는 div와 HTML Agility 팩을 사용하는 해당 하위 항목을 제거하는 데 어려움을 겪고 있습니다. 나는 단지 설정 옵션이 빠졌을 것이라고 확신하지만, 금요일과 나는 고군분투하고있다.

간소화 된 HTML 실행 :

<html><head></head><body><div id='wrapper'><div id='functionBar'><div id='search'></div></div></div></body></html>

이것은 내가 가진 것입니다. 민첩성 팩이 던진 오류는 div 구조를 찾을 수 없음을 보여줍니다.

<div id='functionBar'></div>

여기에 지금까지 코드 (Stackoverflow ....에서 찍은)

HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
        // There are various options, set as needed
        //htmlDoc.OptionFixNestedTags = true;

        // filePath is a path to a file containing the html
        htmlDoc.LoadHtml(Html);

        string output = string.Empty;

        // ParseErrors is an ArrayList containing any errors from the Load statement
        if (htmlDoc.ParseErrors != null && htmlDoc.ParseErrors.Count > 0)
        {
            // Handle any parse errors as required

        }
        else
        {

            if (htmlDoc.DocumentNode != null)
            {
               HtmlAgilityPack.HtmlNode bodyNode  = htmlDoc.DocumentNode.SelectSingleNode("//body");

                if (bodyNode != null)
                {
                    HtmlAgilityPack.HtmlNode functionBarNode = bodyNode.SelectSingleNode ("//div[@id='functionBar']");

                    bodyNode.RemoveChild(functionBarNode,false);

                    output = bodyNode.InnerHtml;
                }
            }
        }

수락 된 답변

bodyNode.RemoveChild (functionBarNode, false);

그러나 functionBarNode는 bodyNode의 자식이 아닙니다.

어때 functionBarNode.ParentNode.RemoveChild(functionBarNode, false) ? (그리고 bodyNode를 찾는 것에 대해 잊어라.)


인기 답변

당신은 간단하게 전화 할 수 있습니다 :

var documentNode = document.DocumentNode;
var functionBarNode = documentNode.SelectSingleNode("//div[@id='functionBar']");
functionBarNode.Remove();

훨씬 더 간단하며 다음과 같은 기능을 수행합니다.

functionBarNode.ParentNode.RemoveChild(functionBarNode, false);



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.