C# HtmlAlityPack获取具有内容属性的元标记
我已经搜索了很多关于这方面的信息,但它就是不起作用。我想获取meta标记的content属性中的值。这是我的代码:C# HtmlAlityPack获取具有内容属性的元标记,c#,xamarin,C#,Xamarin,我已经搜索了很多关于这方面的信息,但它就是不起作用。我想获取meta标记的content属性中的值。这是我的代码: public string getTheImagesUrl(string url) { HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(url); string xpath = "//meta[@property='og:image'"; StringBuilder sb = new Stri
public string getTheImagesUrl(string url)
{
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(url);
string xpath = "//meta[@property='og:image'";
StringBuilder sb = new StringBuilder();
foreach (HtmlNode node in doc.DocumentNode.Descendants(xpath))
{
sb.AppendLine(node.Attributes["content"].Value);
}
return sb.ToString();
}
这不会返回任何结果。任何帮助都将不胜感激。我无法让它与HtmlAgilityPack一起工作,但这里有一个与HtmlAgilityPack一起工作的示例
var config=Configuration.Default.WithDefaultLoader();
字符串地址=”http://stackoverflow.com";
返回(wait BrowsingContext.New(config.OpenAsync(address))
.DocumentElement.degents()
.Where(x=>x.NodeType==NodeType.Element)
第()类
.Where(x=>x.Attributes[“property”]?.Value==“og:image”)
.Select(x=>x.Attributes[“content”]?.Value)
.FirstOrDefault();
查询选择器行中似乎缺少右括号字符。只需一行简单的代码,就可以完成所需的操作,如下所示
doc.DocumentNode.SelectSingleNode("//meta[@property='og:image']").GetAttributeValue("content", null);
doc.DocumentNode.SelectSingleNode("//meta[@property='og:image']").GetAttributeValue("content", null);