Come possiamo selezionare il valore di a <option> in <select> utilizzando il testo in <option> testo <option>

c# html-agility-pack xpath

Domanda

Come possiamo selezionare il valore di una <option> in <select> usando 'text' in

<option value="123">text<option>

Ecco xpath, usando questo sono in grado di verificare che ci sia un'opzione in <select> witch contiene ' text '

string xpath = "// * [contiene (@name, 'selectname')] / option [contains (translate (text ()," + "'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'text')]";

Ecco l'html

<select name="selectname">
<option value="`123`">text</option>
<option value="456">text</option>
</select>

Voglio ottenere il valore 123 usando lo stesso xpath che per prima cosa controlla che ci sia un'opzione che contiene ad esempio "testo" e ottiene il valore cioè "123".

inserisci la descrizione dell'immagine qui

Risposta accettata

var doc = new HtmlAgilityPack.HtmlDocument();
HtmlAgilityPack.HtmlNode.ElementsFlags.Remove("option");
doc.LoadHtml(html);

var values = doc.DocumentNode.SelectNodes("//select[@name='selectname']/option")
                .Where(o => o.InnerText=="text")
                .Select(o => o.Attributes["value"].Value)
                .ToList();

Risposta popolare

Usando il pacchetto Agilità HTML dovresti essere in grado di usare InnerHTML




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é