Html 민첩성 팩 selectnodes가 null을 반환합니다.

c# html-agility-pack html-parsing

문제

나는 윈도우 폰 8 기기에서 일하고에서 HTML 민첩성 팩 HTML 문서를 구문 분석하려고 해요 http://www.livescience.com/41480-3d-printed-kidneys-take-small-steps.html 나는를 얻을 수 있습니다 <title> 태그를 쉽게 사용할 수 있지만 이제는 그 문서에서 전체 <p> 태그를 가져오고 싶습니다. 나는이 두 가지 해결책 12를 시도했지만 효과가 없다. 이 솔루션을 기반으로 한 실제 코드입니다.

private void loadDoc()
    {
        try
        {
            HtmlWeb.LoadAsync("http://www.livescience.com/41480-3d-printed-kidneys-take-small-steps.html", Html_Completed);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

    private void Html_Completed(object sender, HtmlDocumentLoadCompleted e)
    {
        doc = e.Document;
        title = doc.DocumentNode.SelectSingleNode("//title");
        p = doc.DocumentNode.SelectNodes("//p");
        foreach(var node in p)
        {
          pr = node.InnerText; //that's the text you are looking for
        }
        text1.Text = title.InnerText;
        if (!pr.Equals("") && pr != "")
        {
            text2.Text = pr;
        }
        else
        {
            MessageBox.Show("null");
        }
    }

내가 사용하는 if 블록이 있는지 여부를 확인하기 위해 foreach null를 돌려줍니다. 아무도이 문제를 해결하는 방법을 알고 있습니까? 나는 어떤 도움을 주셔서 감사합니다. 고맙습니다.

인기 답변

시도해보십시오 :

p = doc.DocumentNode.SelectNodes(".//p");

대신에:

p = doc.DocumentNode.SelectNodes(".//p");

p 는 클래스 또는 id가 아닌 태그 유형입니다.




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