如何找到包含特定字词的CSS
属性?
我试过
href
然而,它并不匹配任何东西。
感谢。
答案 0 :(得分:3)
我强烈建议不要在这种情况下使用正则表达式。我确信使用HTML解析器可以极大地方便任务。
以下是如何使用HtmlAgilityPack完成此操作的示例。通过解决方案>进行安装管理解决方案的NuGet包... 并使用
public List<string> HtmlAgilityPackGetHrefIfValueContains(string html, string href_text)
{
var hrefs = new List<string>();
HtmlAgilityPack.HtmlDocument hap;
Uri uriResult;
if (Uri.TryCreate(html, UriKind.Absolute, out uriResult) && uriResult.Scheme == Uri.UriSchemeHttp)
{ // html is a URL
var doc = new HtmlAgilityPack.HtmlWeb();
hap = doc.Load(uriResult.AbsoluteUri);
}
else
{ // html is a string
hap = new HtmlAgilityPack.HtmlDocument();
hap.LoadHtml(html);
}
var nodes = hap.DocumentNode.SelectNodes("//*[@href]");
if (nodes != null)
{
foreach (var node in nodes)
{
foreach (var attribute in node.Attributes)
if (attribute.Name == "href" && attribute.Value.Contains(href_text))
{
hrefs.Add(attribute.Value);
}
}
}
return hrefs;
}
现在,您可以传递网页的html
字符串或网址,并获取所有标记(如果您计划仅使用a
hrefs,使用//a[@href]
xpath) href_text
。