从<style>元素</style>解析CSS

时间:2010-06-08 15:56:10

标签: c# vb.net coding-style parsing

有人可以告诉我一种在.NET标记页面上检索标签之间的CSS的有效方法吗?

我想出了一个使用递归,Split()和CompareTo()的方法但是真的很啰嗦,我确信必须有一个更短(更聪明)的方法来做同样的事情

请注意,页面上可以有多个元素,元素可以是或。

3 个答案:

答案 0 :(得分:3)

我可能会选择HTML Agility Pack,它为您提供DOM样式的页面访问权限。它能够挑选出你的CSS数据块,但实际上并没有将这些数据解析为键/值对。您可以使用X-Path样式表达式获取相关的HTML部分。

编辑: Html Agility Pack的典型用法示例如下所示。

HtmlDocument doc = new HtmlDocument();
doc.Load("file.htm");
var nodes = doc.DocumentElement.SelectNodes("//a[@style"]);
//now you can iterate over the selected nodes etc

答案 1 :(得分:1)

这是一个C#CSS解析器。应该做你需要的。

http://www.codeproject.com/KB/recipes/CSSParser.aspx

答案 2 :(得分:0)

试试Regex。

:转到:http://gskinner.com/RegExr/ 使用css粘贴html,并在顶部使用此表达式:

<style type=\"text/css\">(.*?)</style>

这是c#版本:

using System.Text.RegularExpressions;

Match m = Regex.Match(this.textBox1.Text, "<style type=\"text/css\">(.*?)</style>", RegexOptions.Singleline);

if (m.Success)
{
    string css = m.Groups[1].Value;
    //do stuff
}
相关问题