C#HTML使用XPath進行解析 - 命名空間

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

我正在嘗試使用HTML Agility Pack解析HTML頁面。我使用了名為XPath Checker的Firefox擴展,我很確定表達式是正確的。但是,當我運行我的代碼時,.NET告訴我“需要命名空間管理器或XsltContext。此查詢具有前綴,變量或用戶定義的函數。”

這很好,除了我不知道從哪裡獲取Xslt或者說Namespace。我怎樣才能弄清楚我需要什麼命名空間?

作為參考,這是我的代碼(我使用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合法嗎? 是的,了解原因