XPathを使用したC#HTML解析 - 名前空間

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

質問

HTMLアジリティパックを使用してHTMLページを解析しようとしています。私はXPathチェッカーという名前のFirefox拡張機能を使用しましたが、私はその表現が正しいことをむしろ確信しています。しかし、コードを実行すると、.NETは "Namespace Managerまたは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は合法ですか? はい、理由を学ぶ