我在C#中有一個代碼,我想提取下面的值(下面的HTML代碼中的文本“我想要這個文本”)。我重新格式化HTML代碼以使其易於閱讀。
<div class="paste-copy-url" style="margin:0 0 0 0;">
<h4>My Stats:</h4>
<div class="line">
<div class="wrap-input">
<input onclick="this.select();" value="I want this text" readonly="readonly">
</div>
</div>
<h4>Website Link:</h4>
<div class="line">
<div class="wrap-input"><input onclick="this.select();" value="Some value" readonly="readonly">
</div>
</div>
</div>
我試過的代碼(它給我的文字:“網站鏈接:”):
var myvaluetoextract = htmlDocument.DocumentNode.SelectSingleNode("//div[@class='paste-copy-url']");
我究竟做錯了什麼?我可以使用這種方法來獲取該元素(頁面中只有一個div類的實例)嗎?
var input = htmlDocument.DocumentNode
.SelectSingleNode("//div[@class='paste-copy-url']//div[@class='wrap-input']/input");
var yourText = input.Attributes["value"].Value;
你可以這樣做:
var myvaluetoextract = htmlDocument.DocumentNode.SelectSingleNode("//div[@class='paste-copy-url']//input");
var value = myvaluetoextract.GetAttributeValue("value", null);
//input
意味著您以遞歸方式在div
的子樹中搜索input
元素。 GetAttributeValue
是一個永遠不會失敗的幫助器,即使該屬性不存在(在這種情況下,如果將返回第二個傳遞的參數 - 這里為null
)