C # - Extrahieren von spezifischem Div-Klassen-Text mit HTMLAgility

c# css html html-agility-pack

Frage

Ich habe einen Code in C #, wo ich den folgenden Wert extrahieren möchte (der Text "Ich möchte diesen Text" im HTML-Code unten). Ich habe den HTML-Code neu formatiert, um es leicht lesbar zu machen.

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

Der Code, den ich versucht habe (Es gibt mir den Text: "Website Link:"):

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

Was mache ich falsch? Kann ich diesen Ansatz verwenden, um dieses Element abzurufen (es gibt nur 1 Instanz der div-Klasse auf der Seite)?

Akzeptierte Antwort

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

Beliebte Antwort

Du kannst es so machen:

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

//input bedeutet, dass Sie rekursiv nach input im Teilbaum des div suchen. GetAttributeValue ist ein GetAttributeValue , das niemals fehlschlägt, auch wenn das Attribut nicht existiert (in diesem Fall wird der zweite übergebene Parameter zurückgegeben - der hier null ist)




Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum