使用 html 敏捷包获取文本值
grab text value using html agillity pack
请检查下面的代码。我试图从这个 html 文档中获取一个 html 文本值。我想获取文本 Quick Kill 32 oz. Mosquito Yard Spray
并且我已经尝试使用 SelectSingleNode
来做到这一点,如下所示,但无法获取此文本值。知道如何解决吗?
string html = @"<div class='pod-plp__description js-podclick-analytics' data-podaction='product name'>
<a class='' data-pos='0' data-request-type='sr' data-pod-type='pr' href='/p/AMDRO-Quick-Kill-32-oz-Mosquito-Yard-Spray-100530440/304755303'>
<span class='pod-plp__brand-name'>AMDRO</span>
Quick Kill 32 oz. Mosquito Yard Spray
</a>
</div>";
var doc = new HtmlDocument();
doc.Load(html);
string title = doc.DocumentNode
.SelectSingleNode("//div[@class='pod-plp__description js-podclick-analytics']span[@class='pod-plp__brand-name']")
.InnerText;
您正在尝试仅定位 span[@class='pod-plp__brand-name']
,这将 return 您仅在 span 内,但您需要 following-sibling::text()
在您的 span 之后抓取文本。请参阅下面的示例代码。您也可以从 html-agility-pack 官方网站了解更多信息。
var Content = htmlDoc.DocumentNode.SelectSingleNode("//span[@class='pod-plp__brand-name']/following-sibling::text()[1]");
string title = titleAgain.InnerText.Trim();
找到解决方案from here
请检查下面的代码。我试图从这个 html 文档中获取一个 html 文本值。我想获取文本 Quick Kill 32 oz. Mosquito Yard Spray
并且我已经尝试使用 SelectSingleNode
来做到这一点,如下所示,但无法获取此文本值。知道如何解决吗?
string html = @"<div class='pod-plp__description js-podclick-analytics' data-podaction='product name'>
<a class='' data-pos='0' data-request-type='sr' data-pod-type='pr' href='/p/AMDRO-Quick-Kill-32-oz-Mosquito-Yard-Spray-100530440/304755303'>
<span class='pod-plp__brand-name'>AMDRO</span>
Quick Kill 32 oz. Mosquito Yard Spray
</a>
</div>";
var doc = new HtmlDocument();
doc.Load(html);
string title = doc.DocumentNode
.SelectSingleNode("//div[@class='pod-plp__description js-podclick-analytics']span[@class='pod-plp__brand-name']")
.InnerText;
您正在尝试仅定位 span[@class='pod-plp__brand-name']
,这将 return 您仅在 span 内,但您需要 following-sibling::text()
在您的 span 之后抓取文本。请参阅下面的示例代码。您也可以从 html-agility-pack 官方网站了解更多信息。
var Content = htmlDoc.DocumentNode.SelectSingleNode("//span[@class='pod-plp__brand-name']/following-sibling::text()[1]");
string title = titleAgain.InnerText.Trim();
找到解决方案from here