【发布时间】:2017-09-27 08:10:29
【问题描述】:
我正在尝试确定我的 C# 脚本中 href 属性的数量。
下面是我从 StreamReader 返回并传递给 var (responsefromserver) 的 HTML
<html>
<head><title>Index of /file-download/isin/20170917/</title></head>
<body bgcolor="white">
<h1>Index of /file-download/isin/20170917/</h1><hr><pre><a
href="../">../</a>
<a href="Commodities/">Commodities/</a>
18-Sep-2017 00:05 -
<a href="Credit/">Credit/</a>
18-Sep-2017 00:05 -
<a href="Equity/">Equity/</a>
18-Sep-2017 00:05 -
<a href="Foreign_Exchange/">Foreign_Exchange/</a>
18-Sep-2017 00:05 -
<a href="Rates/">Rates/</a>
18-Sep-2017 00:05 -
</pre><hr></body>
</html>
我想做的是获得一个匹配项(使用正则表达式),这样我就可以计算 URL 中 href 的数量(这些数量最多可以从 1 到 5 个不等。(商品、信用、股票、外汇和利率)然后我可以将计数传递给一个变量以供以后使用。
href 的名称永远不会改变,但我需要确认计数,然后我可以检查下载的文件计数是否与 href 的计数匹配(每个href 下都有一个文件)。
我的正则表达式技能很垃圾,我永远无法仅在条款(商品、信贷、股票、外汇和利率)上匹配,所以任何帮助建立这些字符串都会很棒。
任何指导都会很棒,我不是 C# 大用户,我在 SSIS 包中使用它,我使用 HTMLAgilityPack,所以如果有另一种方式比我更干净/更好开放的建议。我可以使用的任何代码 sn-ps,它给了我我需要的东西,使用 XPath 会很方便,因为我不是普通的 c# 用户(还)
非常感谢。
【问题讨论】:
-
首先:不要使用 Regex 解析 HTML(您已经提到了 HTML Agility Pack - 使用它并通过 XPath 找到您需要的东西)。 “所以我可以计算 URL 中 href 的数量”是什么意思?
-
我知道这会是回应!我会把它放在下巴上,然后开始研究 Xpath。我所说的计数是指 URL 可以具有从 1 个属性到 5 个属性的任何属性,具体取决于可用的文件,我想计算其中的内容
-
绝佳选择;)。我知道 Regex 可能很诱人,但这可能是“如果您遇到问题并尝试使用 Regex 解决它,您最终会遇到两个问题”的经典示例。