HTMLAgilityを使用して特定のdivクラスのテキストを抽出する

c# css html html-agility-pack

質問

私は下の値(以下のHTMLコードの中の "私はこのテキストが必要です"というテキスト)を抽出するC#のコードを持っています。私は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クラスのインスタンスが1つしかありません)。

受け入れられた回答

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は、属性が存在しない場合でも失敗しないヘルパーです(この場合、2番目に渡されたパラメータを返すかどうか - ここではnullです)




ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ