C# 分组结果为XPath
简介: 假设我们有这样一个HTML代码:C# 分组结果为XPath,c#,xml,xpath,html-agility-pack,C#,Xml,Xpath,Html Agility Pack,简介: 假设我们有这样一个HTML代码: <div class="search-result"> <h2>TV-Series</h2> <ul> <li> <div class="title"> <a href="/subtitles/prison-break-sequel-first-season">Pris
<div class="search-result">
<h2>TV-Series</h2>
<ul>
<li>
<div class="title">
<a href="/subtitles/prison-break-sequel-first-season">Prison Break : Sequel - First Season</a>
</div>
<span class="subtle count">10 subtitles</span>
</li>
<li>
<div class="title">
<a href="/subtitles/prison-break-fourth-season">Prison Break - Fourth Season</a>
</div>
<span class="subtle count">1232 subtitles</span>
</li>
</ul>
<h2>Popular</h2>
<ul>
<li>
<div class="title">
<a href="/subtitles/prison-break-fourth-season">Prison Break - Fourth Season (2008)</a>
</div>
<div class="subtle count">
1232 subtitles
</div>
</li>
<li>
<div class="title">
<a href="/subtitles/prison-break-third-season">Prison Break - Third Season (2007)</a>
</div>
<div class="subtle count">
644 subtitles
</div>
</li>
</ul>
</div>
电视剧
-
10个副标题
-
1232副标题
流行的
-
1232副标题
-
644副标题
页面是这样的:
<div class="search-result">
<h2>TV-Series</h2>
<ul>
<li>
<div class="title">
<a href="/subtitles/prison-break-sequel-first-season">Prison Break : Sequel - First Season</a>
</div>
<span class="subtle count">10 subtitles</span>
</li>
<li>
<div class="title">
<a href="/subtitles/prison-break-fourth-season">Prison Break - Fourth Season</a>
</div>
<span class="subtle count">1232 subtitles</span>
</li>
</ul>
<h2>Popular</h2>
<ul>
<li>
<div class="title">
<a href="/subtitles/prison-break-fourth-season">Prison Break - Fourth Season (2008)</a>
</div>
<div class="subtle count">
1232 subtitles
</div>
</li>
<li>
<div class="title">
<a href="/subtitles/prison-break-third-season">Prison Break - Third Season (2007)</a>
</div>
<div class="subtle count">
644 subtitles
</div>
</li>
</ul>
</div>
您可以在此处看到原始站点:
我正在编写一个C#桌面应用程序,用于获取该站点的信息
在学习HTML敏捷包之前,我使用正则表达式
使用此模式:[\s\s]+?
我将独立的系列(如电视系列、流行和…)
然后在Rgular表达式上使用此模式:[\s\s]+?[\s\s]+?class=“微妙计数”[\s\s]+?(\d*)[\s\s]+?
我从该站点获得分类信息
使用MatchCollection&usinggroups(用括号定义),我在Regex中的方法返回了每个系列的二维列表,每一行都是关于一部电影的,列包括:电影名称、字幕数量和字幕链接
这个二维列表就像一个数据库,就像这样:
现在我学习了HTML敏捷包
问题:
1-如何使用XPath在HTML敏捷包中创建这样的列表
2-如您之前所见,我可以使用哪个XPath创建类似Regex的组
非常感谢。Martin Honnen的评论是正确的,没有太多功能通过XPath提供“分组”。但是,可以使用循环并在元素集上运行一组XPath来提取所需的数据 首先,提取每个标题元素,然后从标题中提取每个列表项,并运行一个文件XPath从每个文件中提取所需的值 注意:这段代码是针对XDocument使用XPath编写的,而不是使用HTML Agility Pack编写的,但是XPath应该是相同的
请注意,在最后一个表达式中使用了XPath
|
运算符,以在单个XPath调用中选择多个不同子级的值。这些值有点像您想要的那样“分组” 使用XSLT、XQuery或LINQ(可以与HTMLAgilityPack一起使用)更好地完成分组。显示一些代码如何?您必须解释所需输出的数据结构,而不是显示图像?有关使用LINQ对示例进行分组的信息,请参阅。我只想对XPath进行分组,如Regex。。。