有人可以告诉我一种在.NET标记页面上检索标签之间的CSS的有效方法吗?
我想出了一个使用递归,Split()和CompareTo()的方法但是真的很啰嗦,我确信必须有一个更短(更聪明)的方法来做同样的事情
请注意,页面上可以有多个元素,元素可以是或。
答案 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解析器。应该做你需要的。
答案 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
}