C # - Estrai il testo della classe div speciifc usando HTMLAgility

c# css html html-agility-pack

Domanda

Ho un codice in C # in cui voglio estrarre il valore sottostante (il testo "Voglio questo testo" nel codice HTML qui sotto). Ho riformattato il codice HTML per renderlo facilmente leggibile.

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

Il codice che ho provato (mi sta dando il testo: "Link al sito web:"):

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

Che cosa sto facendo di sbagliato? Posso usare questo approccio per ottenere quell'elemento (C'è solo 1 istanza della classe div nella pagina)?

Risposta accettata

var input = htmlDocument.DocumentNode
           .SelectSingleNode("//div[@class='paste-copy-url']//div[@class='wrap-input']/input");
var yourText = input.Attributes["value"].Value;

Risposta popolare

Puoi farlo in questo modo:

var myvaluetoextract = htmlDocument.DocumentNode.SelectSingleNode("//div[@class='paste-copy-url']//input");
var value = myvaluetoextract.GetAttributeValue("value", null);

//input significa che si cercano gli elementi di input nel sottostruttura div , in modo ricorsivo. GetAttributeValue è un helper che non fallirà mai, anche se l'attributo non esiste (in questo caso restituirà il 2 ° parametro passato - che è null qui)




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché