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

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

有帮助吗?

解决方案

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

在客户端,jQuery是一个不错的选择 - 并且支持复合类名。

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

在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;

其他提示

是的,使用XPath很容易:

//*[@class='foo']
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top