GetElementsByTagName in Htmlagilitypack

c# getelementsbytagname html-agility-pack webbrowser-control

Domanda

Come seleziono un elemento per es. Textbox se non conosco il suo id?

Se conosco il suo id allora posso semplicemente scrivere:

HtmlAgilityPack.HtmlNode node = doc.GetElementbyId(id);

Ma non conosco l'ID della textbox e non riesco a trovare il metodo GetElementsByTagName in HtmlagilityPack, disponibile nel controllo webbrowser. Nel controllo del browser web avrei potuto semplicemente scrivere:

HtmlAgilityPack.HtmlNode node = doc.GetElementbyId(id);

MODIFICARE

Ecco il modulo HTML di cui sto parlando

HtmlAgilityPack.HtmlNode node = doc.GetElementbyId(id);

Si prega di notare che non conosco l'ID del modulo. E ci possono essere diversi moduli sulla stessa pagina. L'unica cosa che so è "il sometto" e voglio ottenere questo elemento usando solo questo nome. Quindi immagino che dovrò analizzare tutti i moduli uno per uno e poi trovare questo nome "in qualche modo" ma come faccio?

Risposta accettata

Se stai cercando il tag con il suo tagName (come ad esempio form per <form name="someForm"> ), allora puoi usare:

var forms = document.DocumentNode.Descendants("form");

Se stai cercando il tag con la sua proprietà name (come someForm per <form name="someForm"> , puoi usare:

var forms = document.DocumentNode.Descendants("form");

Per l'ultimo è possibile creare un semplice metodo di estensione:

var forms = document.DocumentNode.Descendants("form");

Nota: è possibile utilizzare SelectNodes e XPath per SelectNodes il documento:

var forms = document.DocumentNode.Descendants("form");

Ti darei tutti gli input sulla pagina che sono in un tag form.

var forms = document.DocumentNode.Descendants("form");

Ti darei tutti gli input del primo modulo sulla pagina


Risposta popolare

Qualsiasi nodo per nome:

doc.DocumentNode.SelectNodes("//*[@name='name']")

Immettere i nodi per nome:

doc.DocumentNode.SelectNodes("//*[@name='name']")



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é