我正在尝试使用 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);