C# - 使用HTMLAgility提取speciifc div類文本


我在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>

我試過的代碼(它給我的文字:“網站鏈接:”):

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

我究竟做錯了什麼?我可以使用這種方法來獲取該元素(頁面中只有一個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





許可下: CC-BY-SA
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因