1

HTML Agility Pack を使用して HTML ページを解析しようとしています。XPath Checker という名前の Firefox 拡張機能を使用しましたが、式が正しいことは確かです。しかし、コードを実行すると、.NET から「名前空間マネージャーまたは 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);
4

1 に答える 1

2

Html Agility Pack の XPATH 実装は、名前空間を含むクエリをサポートしていません。

ライブラリはオープンソースなので変更可能ですが、この機能を追加するにはかなりの数の書き換えが必要です。

于 2013-09-09T12:07:40.943 に答える