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:"):
var myvaluetoextract = htmlDocument.DocumentNode.SelectSingleNode("//div[@class='paste-copy-url']");
Che cosa sto facendo di sbagliato? Posso usare questo approccio per ottenere quell'elemento (C'è solo 1 istanza della classe div nella pagina)?
var input = htmlDocument.DocumentNode
.SelectSingleNode("//div[@class='paste-copy-url']//div[@class='wrap-input']/input");
var yourText = input.Attributes["value"].Value;
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)