Récupérer des données à partir de la table HTML en C#
Je veux récupérer des données à partir d'un document HTML.
Je suis de grattage de données à partir d'un site web j'ai presque fait, mais obtenir de problème lorsque j'essaye de récupérer les données de la table.
Voici le code HTML
<div id="middle_column">
<form action="url?" method="post" name="inquirydetail">
<input type="hidden" name="ServiceName" value="SurgeWebService">
<input type="hidden" name="TemplateName" value="Inpat_AvailableResponses.htm">
<input type="hidden" name="CurrentPage" value="inquirydetail">
<form method="post" action="url" name="ResponseSel" onSubmit="return EditPage(document.forms[3])">
<TABLE
<tBody
<table
....
</table
<table
....
</table
<table border="0" width="90%">
<tr>
<td width="10%" valign="bottom" class="content"> Service Number</td>
<td width="30%" valign="bottom" class="content"> Status</td>
<td width="50%" valign="bottom" class="content"> Status Date</td>
</tr>
<tr>
<td width="20%" bgcolor="white" class="subtitle">1</td>
<td width="40%" bgcolor="white" class="subtitle">Approved</td>
<td width="40%" bgcolor="white" class="subtitle">03042014</td>
</tr>
<tr>
<td></td>
</tr>
</table>
</tbody>
</TABle>
</div>
J'ai récupérer les données pour le champ de Statut, Il est Approuvé et à écrire en SQL DB
Il y a beaucoup de tables dans la balise form.Les Tables n'ont pas d'Id.Comment je peux obtenir de table correct,de lignes et de cellules
Voici mon code
HtmlElement tBody = WB.Document.GetElementById("middle_column");
if (tBody != null)
{
string sURL = WB.Url.ToString();
int iTableCount = tBody.GetElementsByTagName("table").Count;
}
for (int i = 0; i <= iTableCount; i++)
{
HtmlElement tb=tBody.GetElementsByTagName("table")[i];
}
Quelque chose qui est faux ici
S'il vous plaît aider avec cela.
OriginalL'auteur user3491632 | 2014-04-08
Vous devez vous connecter pour publier un commentaire.
Tu n'as pas de contrôle sur la page affichée dans le contrôle Webbrowser? Si vous le faites du mieux que vous ajoutez un champ id pour le statut de la banque TD. Alors que votre vie serait beaucoup plus facile.
De toute façon, voici comment vous pourriez rechercher une valeur dans un tableau.
Mais, ce n'est pas une bonne approche que vous êtes en parcourant chaque tableau et chaque cellule à l'intérieur de chaque table pour trouver votre texte. Gardez ce que la dernière option.
Espère que cela vous aide à vous faire une idée.
Oui, cela devrait fonctionner
OriginalL'auteur Sam
Je préfère utiliser le type dynamique et la DomElement de la propriété, mais vous devez être en utilisant .net 4+.
Pour les tables, le principal avantage est que vous n'avez pas à boucle à travers tout. Si vous connaissez la rangée et de la colonne que vous recherchez, alors vous pouvez simplement cibler les données importantes par ligne et par colonne des chiffres à la place d'une boucle dans l'ensemble de la table.
L'autre gros avantage est que vous pouvez en principe utiliser la totalité du DOM, la lecture, plus que le contenu de la table. Assurez-vous que vous utilisez les minuscules propriétés requises en javascript, même si vous êtes en c#.
OriginalL'auteur Jroonk