C# 解析HTML/CSS/PHP文件
我需要某种图书馆,可能是HTMLAgilityPack?它可以解析HTML文件和CSS文件。但这有点棘手,因为HTML(PHP)文件中可能包含PHP代码,也可能包含CSS代码,所以如果没有库的帮助,我甚至不可能独自尝试解决这个问题 我正在Visual Studio Express 2010中使用C#/WinForms。到目前为止,我唯一能找到的是HTML AgilityPack,它没有我能找到的文档,而且我不确定它是否完成了我需要它做的所有事情 我的确切要求是找到一种方法来解析HTML文件,循环遍历每个标记,获取其内容,获取所有属性和值等,并对每个标记进行处理C# 解析HTML/CSS/PHP文件,c#,.net,html,css,winforms,C#,.net,Html,Css,Winforms,我需要某种图书馆,可能是HTMLAgilityPack?它可以解析HTML文件和CSS文件。但这有点棘手,因为HTML(PHP)文件中可能包含PHP代码,也可能包含CSS代码,所以如果没有库的帮助,我甚至不可能独自尝试解决这个问题 我正在Visual Studio Express 2010中使用C#/WinForms。到目前为止,我唯一能找到的是HTML AgilityPack,它没有我能找到的文档,而且我不确定它是否完成了我需要它做的所有事情 我的确切要求是找到一种方法来解析HTML文件,循环
你以前见过这样的图书馆吗?有人能提供一些帮助/建议吗?我并不是真的在追求完美,只是简单和多样性。HTML Agility Pack将允许您按照您所描述的元素进行循环。文档有点薄,但它是按照XmlDocument类建模的,这大大简化了学习过程。元素是使用XPath查询选择的。这里有一个小的用法示例 下面是一些示例代码,它遍历HTML文档中的所有元素(注意,其中包括文本元素、
元素等):
var doc=new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(someHtmlString);
foreach(doc.DocumentNode.SelectNodes(“*”)中的HtmlNode节点可枚举。空(){
var contents=node.InnerHtml;
foreach(node.Attributes中的var属性){
var name=attribute.name;
var值=属性值;
}
}
解释如何处理PHP标记(您可能想忽略或提取它们)。摆脱PHP代码应该不难,可能可以通过正则表达式来完成(基本上,您只想去掉
之间的任何内容)
就HTML而言,CSS只是文本数据,因此您可以解析HTML,将每个
标记的内容提取为字符串,然后使用CSS解析器解析(如果您甚至关心CSS的内容)
我以前没有听说过Html Agility Pack,但它看起来可以胜任这项工作,而且有很多答案推荐它
我还发现了CSS解析器,以防您也需要它。是的,别忘了
??Enumerable.Empty()
位。。。。(比我的解决方案要好得多,顺便说一句!+1)。。这是我对HAP最大的不满。如果你只关心HTML元素,PHP和CSS就不应该成为问题。该代码可能只是
中的文本。除非您也需要解析PHP,否则HAP将完成这项工作。
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(someHtmlString);
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("*") ?? Enumerable.Empty<HtmlNode>()) {
var contents = node.InnerHtml;
foreach (var attribute in node.Attributes) {
var name = attribute.Name;
var value = attribute.Value;
}
}