1

我正在使用 XmlDocument 来解析和操作 XHTML 字符串,将一些节点转换为非 HTML 节点。

获取具有给定类名的所有节点列表的最佳方法是什么?可以用 XPath 完成吗?

4

2 回答 2

2

有一个给定的班级?如果它只是一个类,那么您应该能够执行类似 .SelectNodes("//*[@class='foo']") 的操作。如果不是 xhtml,那么HTML Agility Pack值得一看。

在客户端,jQuery 将是一个不错的选择——它支持复合类名。

如果您在单个元素上有多个类名,并且需要在服务器上处理它,我希望您可能需要先找到候选类 ("//*[@class!='']),然后遍历它们做 aSplit()并检查结果中的类名;即手动将其拆开。

在 LINQ 术语中,类似于:

        var qry = from XmlElement el in d.SelectNodes("//*[@class!='']")
                  let classes = el.GetAttribute("class").Split(new[] {' '},
                          StringSplitOptions.RemoveEmptyEntries)
                  where classes.Contains("foo")
                  select el;
于 2008-11-03T14:04:38.177 回答
1

是的,使用 XPath 很容易:

//*[@class='foo']
于 2008-11-03T14:04:51.250 回答