繁体   English   中英

如何从 c# 中的元素中检索属性值

[英]How to retrieve value of attribute from element in c#

我有以下 html 元素,我想获取属性“data-productid”的值

<div qa-id="itemImageContainer" class="items__img oli-image js-oli-image zoom_on_hover" ng-class="{'zoom_on_hover': oli.IsNewPreviewEnabled === true}" data-action="edit" data-oli-index="0" data-productid="2940" data-complete="false" data-design-name="" data-tid="27dff633-049f-44c8-bab8-40e3bd533feb" data-productsku="2940">

XPath

//*[@qa-id = 'itemImageContainer']

大多数 HTML 与 XML 兼容(一些例外的列表),因此您应该能够从字符串中解析XElement并获取如下值:

var element = XElement.Parse(divString);
// The return value of 'Attribute(...)' can be null, so maybe do null checking
var dataProductId = element.Attribute("data-productid").Value;

如果您遇到一些无效的 HTML XML,您可能需要像Html 敏捷包这样的东西来正确解析您的 Z4C4ADB15AAFCA2037A874DB。 使用它你的代码会是这样的:

var html = new HtmlDocument();
html.Load(htmlString);
var div = html.DocumentNodes.SelectNodes("//*[@qa-id = 'itemImageContainer']").LastOrDefault();
// Maybe check if its null
var dataProductId = div.Attributes["data-productid"].Value;

我没有很多使用 XPath 的经验,所以我从这个答案中得到了我的例子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM