J'ai des ennuis avec ça:
J'ai un code HTML interne de mon entreprise. Sur cette page, j'ai un tableau. Je souhaite convertir un tableau HTML en DataTable en C #:
Voici mon code:
IWebElement ie = driver.FindElement(By.XPath(".//*[@id='frmClaimSearch']/div[2]/div[1]/div/table"));
ie.GetAttribute("innerHTML");//get Element of the HTML
var doc = new HtmlDocument();
doc.Load("????");
var nodes = doc.DocumentNode.SelectNodes(".//*[@id='frmClaimSearch']/div[2]/div[1]/div/table/tr");
var table = new DataTable("MyTable");
var headers = nodes[0]
.Elements("th")
.Select(th => th.InnerText.Trim());
foreach (var header in headers)
{
table.Columns.Add(header);
}
var rows = nodes.Skip(1).Select(tr => tr
.Elements("td")
.Select(td => td.InnerText.Trim())
.ToArray());
foreach (var row in rows)
{
table.Rows.Add(row);
}
@id='frmClaimSearch']/div[2]/div[1]/div/table/tr");
var table = new DataTable("MyTable is my XPath of Table.
Mais ces codes ne fonctionnent pas. J'ai tellement essayé. Aidez-moi s'il vous plaît. Merci beaucoup.
Utilisez la méthode LoadHtml()
au lieu de Load()
pour renseigner HtmlDocument
partir d'une chaîne HTML:
IWebElement ie = driver.FindElement(By.XPath(".//*[@id='frmClaimSearch']/div[2]/div[1]/div/table"));
string innerHtml = ie.GetAttribute("innerHTML");
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(innerHTML);
.......