簡體   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