C# 从<;风格>;元素

C# 从<;风格>;元素,c#,vb.net,coding-style,parsing,C#,Vb.net,Coding Style,Parsing,有人能告诉我一种在.NET中标记页面上的标记之间检索CSS的有效方法吗 我想出了一个使用递归、Split()和CompareTo()的方法,但是这个方法非常冗长,我确信肯定会有一个更短(更聪明)的方法来做同样的事情 请记住,一个页面上可能有多个元素,并且元素可以是或。这是一个C#CSS解析器。你应该做你需要的 这是一个C#CSS解析器。你应该做你需要的 我可能会选择使用DOM样式访问页面的方法。它将能够挑选出您的CSS数据块,但实际上无法将这些数据解析为键/值对。您可以使用X-Path样式的表达

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

我想出了一个使用递归、Split()和CompareTo()的方法,但是这个方法非常冗长,我确信肯定会有一个更短(更聪明)的方法来做同样的事情

请记住,一个页面上可能有多个元素,并且元素可以是或。

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

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

我可能会选择使用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
我可能会选择使用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
试试正则表达式

后藤: 使用css粘贴html,并在顶部使用以下表达式:

<style type=\"text/css\">(.*?)</style>
(*)
以下是c版本:

使用System.Text.regular表达式;
Match m=Regex.Match(this.textBox1.Text,(.*),RegexOptions.Singleline);
如果(m.成功)
{
字符串css=m.Groups[1]。值;
//做事
}
试试正则表达式

后藤: 使用css粘贴html,并在顶部使用以下表达式:

<style type=\"text/css\">(.*?)</style>
(*)
以下是c版本:

使用System.Text.regular表达式;
Match m=Regex.Match(this.textBox1.Text,(.*),RegexOptions.Singleline);
如果(m.成功)
{
字符串css=m.Groups[1]。值;
//做事
}

我已经有了处理CSS的代码,我只需要一个好的、干净的方法将CSS拉到我的类中。您提到的CSS解析器更关心的是,正如标题所说,解析CSS的属性,这不是我在这里要做的;我只是想得到CSS。我刚刚下载了代码,这看起来很有希望。我认为理想的解决方案是使用tcabls(上面)中的正则表达式,然后按照您的建议解析CSS。我已经有了处理CSS的代码,我只需要一个好的、干净的方法将CSS拉到我的类中。您提到的CSS解析器更关心的是,正如标题所说,解析CSS的属性,这不是我在这里要做的;我只是想得到CSS。我刚刚下载了代码,这看起来很有希望。我认为理想的解决方案是使用tcabls(上面)中的正则表达式,然后按照您的建议解析CSS。这看起来更像我正在寻找的,尽管我真的希望有一个简单的、单一的或两个方法。我会调查并公布我的结果。谢谢。这很简单-请参阅我的更新以了解典型用法的示例。
var nodes=doc.DocumentNode.SelectNodes(“//a[@style]”)对于更新的版本,这看起来更像我正在寻找的,虽然我真的希望有一个简单的,单一的或两个方法。我会调查并公布我的结果。谢谢。这很简单-请参阅我的更新以了解典型用法的示例。
var nodes=doc.DocumentNode.SelectNodes(“//a[@style]”)
用于更新版本使用正则表达式解析html?伙计们,你们知道Regex有什么问题吗?在得到结果之前,您喜欢使用string.split()?这实际上就是我想要的解决方案。非常容易实现,也是实现我想要的最直接的方法,不过我将在不久的将来研究HTML Agility Pack?伙计们,你们知道Regex有什么问题吗?在得到结果之前,您喜欢使用string.split()?这实际上就是我想要的解决方案。非常容易实现,也是实现我想要的最直接的方法,尽管我将在不久的将来研究HTML敏捷包。