c# - Xpath 返回 nav/ul/li/a/herf
问题描述
网站网址:www.tase.co.il
网站源代码:
<nav class="collapse more_madad_nav in" id="more_madad_nav">
<ul class="first_level">
<li>
<ul class="second_level">
<li class="current"><a href="/he/market_data/security/1158823/major_data"> x </a></li>
<li><a href="/he/market_data/security/1158823/graph"> x </a></li>
<li><a href="/he/market_data/security/1158823/indices">x</a></li>
<li><a href="/he/market_data/security/1158823/statistics"> x</a></li>
<li><a href="/he/market_data/security/1158823/historical_data"> x </a></li>
<li><a href="/he/market_data/security/1158823/otc"> x </a></li>
<li><a href="/he/market_data/security/1158823/short_sale">x</a></li>
</ul>
</li>
<li><!----><h3> x </h3>
<ul class="second_level">
<li><a href="/he/market_data/company/2135/about?securityId=1158823">x</a></li>
<li><a href="/he/market_data/company/2135/securities?securityId=1158823">x</a></li>
<li><!----><a href="/he/market_data/company/2135/reports_maya?securityId=1158823">x</a></li>
<li><a href="/he/market_data/company/2135/financial_reports?securityId=1158823">x</a></li>
<li><a href="/he/market_data/company/2135/analysis?securityId=1158823">x</a></li>
</ul>
</li>
</ul>
</nav>
我的 GetHtmlDocument 的 C# 代码:
protected HtmlDocument GetHtmlDocument(string sUrl, Encoding oEncoding, bool bSetContentType = true) {
string sPostData = "GET";
string sReferer = string.Empty;
List < string > oCookies = new List < string > ();
string sHtmlContent = string.Empty;
string sRedirectUrl = string.Empty;
return GetHtmlDocument(sUrl, sPostData, sReferer, oCookies, ContentType.html, out sRedirectUrl, out sHtmlContent, oEncoding, bSetContentType);
}
protected HtmlDocument GetHtmlDocument(string sUrl, string sPostData, string sReferer, List < string > oCookies, ContentType eContentType, out string sRedirectUrl, out string sHtmlContent, Encoding oEncoding, bool bSetContentType = true) {
HttpStatusCode oHttpStatusCode = SingleHttpRequest(sUrl, sPostData, sReferer, oCookies, ContentType.html, out sRedirectUrl, out sHtmlContent, oEncoding, true, bSetContentType);
if (oHttpStatusCode != HttpStatusCode.OK) {
string sMsg = string.Format("SingleHttpRequest to '{0}' returned '{1}' status", sUrl, oHttpStatusCode);
LOG.Error(sMsg);
throw new Exception(sMsg);
}
HtmlDocument oHtmlDocument = new HtmlDocument();
LOG.DebugFormat("sHtmlContent : \n{0}\n , sUrl : {1}", sHtmlContent, sUrl);
oHtmlDocument.LoadHtml(sHtmlContent);
return oHtmlDocument;
}
HtmlDocument oSearchHtmlDocument = GetHtmlDocument(sSearchUrl, false);
HtmlNode o = oSearchHtmlDocument.DocumentNode.SelectSingleNode("//*[@id='more_madad_nav']//ul[@class='second_level']//li/a[contains(@href,'about')]/@href"); //this is the line!
我正在尝试从“第二级”(/he/market_data/company/2135/about?securityId=1158823) 获取第一个href 感谢您的帮助
解决方案
推荐阅读
- python - Python - 使用 to_datetime() 函数不会转换超过 3000 的年份
- wso2 - WSO2 是自定义用户存储 - SQLException:没有更多数据可以从套接字读取
- javascript - Textarea caret-color 不适用于 iOS Safari 浏览器
- swift - 如何在 Swift5 中使用 ObjectMapper 映射 Alamofire 5.2 响应
- php - 通过本地网络连接 Laravel 数据库
- jenkins - 文件未使用 ansible 从远程主机复制
- javascript - 捕获图像后网格视图不会自动刷新
- sql - 如何计算一对多关系,但包括 0?
- sql-server - 运行 SSIS 包作业时出现 Azure SQL Server 连接失败问题
- scala - 在类型化数据集上进行模式匹配