从 html 获取 href 标签内部文本(html 敏捷包)
Get href tag inner text from html (html agility pack)
我成功地从下面 html 中的所有 href 标签中提取文件名并将其添加到列表中。
HTML:
<ul class="resourcelist">
<li><a href="/upload/Article/07.pdf" target="_blank"><img src="/assets/images/pdf.png" /> <strong>SPEC SHEET: </strong> d07</a></li>
<li><a href="/upload/Article/73.pdf" target="_blank"><img src="/assets/images/pdf.png" /> <strong>ASSEMBLY SHEET: </strong> d73</a></li>
<li><a href="/upload/Article/75.pdf" target="_blank"><img src="/assets/images/pdf.png" /> <strong>ASSEMBLY SHEET: </strong> d75</a></li>
<li><a href="/upload/Article/71.pdf" target="_blank"><img src="/assets/images/pdf.png" /> <strong>INSTALLATION SHEET: </strong> d71</a></li>
</ul>
C# 代码解析 html:
public List<string> LinksList = new List<string>();
public List<string> GetLinks()
{
var doc = new HtmlDocument();
doc.LoadHtml(GetProductDescription("TechnicalSpecifications"));
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//a[@href]");
foreach (var node in nodes)
{
var href = node.Attributes["href"].Value.Split('/')[3];
if (!LinksList.Contains(href))
{
LinksList.Add(href);
}
}
return LinksList;
}
是否有任何可能的方法来定位从 <strong>
开始的所有内容 + 关闭标签之前的文本? (基本上 < ... > 中没有的所有内容)
我已经查看了大量关于 SO 的问题,似乎没有任何答案。
输出示例:
规格SHEET:d07
提前致谢。
您实际上只是在收集节点的内部文本。这样做:
var texts = doc.DocumentNode
.SelectNodes("//a[@href]")
.Select(n => n.InnerText)
.Distinct()
.ToList();
我成功地从下面 html 中的所有 href 标签中提取文件名并将其添加到列表中。
HTML:
<ul class="resourcelist">
<li><a href="/upload/Article/07.pdf" target="_blank"><img src="/assets/images/pdf.png" /> <strong>SPEC SHEET: </strong> d07</a></li>
<li><a href="/upload/Article/73.pdf" target="_blank"><img src="/assets/images/pdf.png" /> <strong>ASSEMBLY SHEET: </strong> d73</a></li>
<li><a href="/upload/Article/75.pdf" target="_blank"><img src="/assets/images/pdf.png" /> <strong>ASSEMBLY SHEET: </strong> d75</a></li>
<li><a href="/upload/Article/71.pdf" target="_blank"><img src="/assets/images/pdf.png" /> <strong>INSTALLATION SHEET: </strong> d71</a></li>
</ul>
C# 代码解析 html:
public List<string> LinksList = new List<string>();
public List<string> GetLinks()
{
var doc = new HtmlDocument();
doc.LoadHtml(GetProductDescription("TechnicalSpecifications"));
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//a[@href]");
foreach (var node in nodes)
{
var href = node.Attributes["href"].Value.Split('/')[3];
if (!LinksList.Contains(href))
{
LinksList.Add(href);
}
}
return LinksList;
}
是否有任何可能的方法来定位从 <strong>
开始的所有内容 + 关闭标签之前的文本? (基本上 < ... > 中没有的所有内容)
我已经查看了大量关于 SO 的问题,似乎没有任何答案。
输出示例:
规格SHEET:d07
提前致谢。
您实际上只是在收集节点的内部文本。这样做:
var texts = doc.DocumentNode
.SelectNodes("//a[@href]")
.Select(n => n.InnerText)
.Distinct()
.ToList();