Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 计算HTML文件中的所有节点_C# 4.0 - Fatal编程技术网

C# 4.0 计算HTML文件中的所有节点

C# 4.0 计算HTML文件中的所有节点,c#-4.0,C# 4.0,有没有一种简单的方法来计算HTML文件中的节点数?我还需要计算特定类型的节点,例如div等 如果可能的话,我想这样做,而不必使用像HTMLAgilityPack这样的外部库。而且,我正在处理的HTML不能保证格式良好且有效 有没有办法从C#开始这样做 谢谢。如果您有XHTML,您可以将其加载到XDocument中,并使用XML操作API或LINQ to XML计算特定模式。 如果没有,可以尝试使用正则表达式。但这一方法适用于少量有趣的标记,因为您必须手动为每个标记定义一个表达式。使用LinqTo

有没有一种简单的方法来计算HTML文件中的节点数?我还需要计算特定类型的节点,例如div等

如果可能的话,我想这样做,而不必使用像HTMLAgilityPack这样的外部库。而且,我正在处理的HTML不能保证格式良好且有效

有没有办法从C#开始这样做


谢谢。

如果您有XHTML,您可以将其加载到XDocument中,并使用XML操作API或LINQ to XML计算特定模式。

如果没有,可以尝试使用正则表达式。但这一方法适用于少量有趣的标记,因为您必须手动为每个标记定义一个表达式。

使用LinqToXml API,您可以轻松解析和循环HTML文档的所有节点。您可以在解析XML文档的上下文中找到与LinqToXml相关的有用文章


下面是StackOverflow中的一个类似线程:

首先。您确定使用javascript的客户端解决方案不能满足您的需要吗? 因为计算HTML文档中节点数的最简单方法是在客户端浏览器上使用jQuery

<script src="http://code.jquery.com/jquery-1.7.min.js"></script>
<script>
    $('html').children() // will give you all child elements of the html element
    $('body').children() // same for body element
    $('body').children('div') // will give you just the direct children elements of 'div' type
    $('body').find('div') // will give you all the nested elements of 'div' type
</script>

$('html').children()//将为您提供html元素的所有子元素
$('body').children()//与body元素相同
$('body').children('div')//将只提供'div'类型的直接子元素
$('body').find('div')//将为您提供所有'div'类型的嵌套元素
如果您不熟悉jQuery,请访问www.jQuery.com

如果您仍然需要一个用于服务器端解析文档的C#解决方案,那么我建议您使用HTMLAgilityPack(即使您不希望)。编写你自己的解析器在我看来是浪费时间,因为你需要考虑畸形的HTML/XML,这可能是一个痛苦。 请尝试使用此s-overflow文章:


希望它能满足您的需求

这里的节点指的是父级节点,或其他所有节点,甚至是嵌套的节点,如等?这是因为我需要从C#开始执行-抱歉,如果不清楚,我将更新我的问题…这些文件不会靠近浏览器-这是一些本地化文件与源文件之间的文件差异。