XPath를 사용하여 C # HTML 구문 분석 - 네임 스페이스

asp.net-mvc-4 c# html-agility-pack xpath

문제

HTML 민첩성 팩을 사용하여 HTML 페이지를 구문 분석하려고합니다. XPath Checker라는 Firefox 확장 프로그램을 사용했는데 그 표현이 정확하다는 것을 확신합니다. 그러나 코드를 실행하면 .NET에서 "Namespace Manager 또는 XsltContext가 필요합니다.이 쿼리에는 접두사, 변수 또는 사용자 정의 함수가 있습니다."라는 메시지가 표시됩니다.

Xslt 또는 네임 스페이스를 어디에서 가져올 지 전혀 알지 못한다면 괜찮습니다. 내가 필요한 네임 스페이스를 어떻게 파악할 수 있습니까?

참고로 이것은 MVC4를 사용하는 코드입니다.

List<Post> posts = new List<Post>();
            // Use this to count how many nodes to get
            int postNodesAmount = doc.DocumentNode.SelectNodes("//div[@class=\"post_block no_sidebar\" ]").Count;            

            for (int i = 1; i <= postNodesAmount; i++)
            {
                Post newPost = new Post();
                string newContent = doc.DocumentNode.SelectSingleNode("id('pane_forums:posts')/x:div/x:div[" + i + "]/x:div/x:div/x:div/x:p[1]").InnerText;
                newPost.Content = newContent;
                posts.Add(newPost);
            }

            return View(posts);

수락 된 답변

Html Agility Pack XPATH 구현은 단순히 네임 스페이스와 관련된 쿼리를 지원하지 않습니다.

라이브러리는 오픈 소스이므로 변경할 있지만이 기능을 추가하려면 많은 재 작성이 필요합니다.




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