C # - Extrait un texte de classe div spécifique à l'aide de HTMLAgility

c# css html html-agility-pack

Question

J'ai un code en C # où je veux extraire la valeur ci-dessous (le texte "Je veux ce texte" dans le code HTML ci-dessous). J'ai reformater le code HTML pour le rendre facilement lisible.

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

Le code que j'ai essayé (Il me donne le texte: "Lien vers le site:"):

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

Qu'est-ce que je fais mal? Puis-je utiliser cette approche pour obtenir cet élément (Il n'y a qu'une seule instance de la classe div dans la page)?

Réponse acceptée

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

Réponse populaire

Vous pouvez le faire comme ça:

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

//input signifie que vous recherchez input éléments d' input dans la sous-arborescence du div , de manière récursive. GetAttributeValue est un assistant qui n'échouera jamais, même si l'attribut n'existe pas (dans ce cas, if retournera le paramètre passé en second lieu - qui est null ici)




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi