当前位置:  开发笔记 > 编程语言 > 正文

使用html Agility Pack选择属性值

如何解决《使用htmlAgilityPack选择属性值》经验,为你挑选了3个好方法。

我正在尝试使用html敏捷包和此xpath从html文档中检索特定图像:

//div[@id='topslot']/a/img/@src

据我所知,它找到了src-attribute,但它返回了img-tag.这是为什么?

我希望设置InnerHtml/InnerText或其他东西,但两者都是空字符串.OuterHtml设置为完整的img-tag.

有没有Html Agility Pack的文档?



1> Pierluc SS..:

如果使用,则可以直接获取属性HtmlNavigator.

//Load document from some html string
HtmlDocument hdoc = new HtmlDocument();
hdoc.LoadHtml(htmlContent);

//Load navigator for current document
HtmlNodeNavigator navigator = (HtmlNodeNavigator)hdoc.CreateNavigator();

//Get value from given xpath
string xpath = "//div[@id='topslot']/a/img/@src";
string val = navigator.SelectSingleNode(xpath).Value;



2> 小智..:

Html Agility Pack 不支持属性选择.


我只是用它来选择属性对齐设置为居中的所有div."// DIV [@ ALIGN = '中心']"

3> 小智..:

您可以使用方法"GetAttributeValue".

例:

//[...] code before needs to load a html document
HtmlAgilityPack.HtmlDocument htmldoc = e.Document;
//get all nodes "a" matching the XPath expression
HtmlNodeCollection AllNodes = htmldoc.DocumentNode.SelectNodes("*[@class='item']/p/a");
//show a messagebox for each node found that shows the content of attribute "href"
foreach (var MensaNode in AllNodes)
{
     string url = MensaNode.GetAttributeValue("href", "not found");
     MessageBox.Show(url);
}

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有