2010-11-04 15 views
0

J'essaie d'effacer les tables HTML dans mon application .NET, mais je suis tombé sur des tables qui utilisent de manière agressive les attributs colspan et rowspan sur les cellules me causant des maux de tête. Je me demandais s'il y a une bibliothèque disponible qui peut convertir une table en un tableau de chaînes et en prenant soin de colspan par exemple si colspan = 5 sur un élément TD alors il utilisera la valeur du TD pour les 5 prochains élémentsGrattage des tables html dans .NET et prise en charge des colspans

<table> 
<tr> 
<td>1</td> 
<td>2</td> 
<td>3</td> 
<td>4</td> 
<td>5</td> 
</tr> 
<tr> 
    <td colspan=4>1</td> 
    <td>2</td> 
</tr></table> 

la sortie serait un tableau des éléments suivants:

[1,2,3,4,5] [1,1,1,1,2]

+0

1,1,1,1,2 pour la 2e? – jasper

+0

@jasper, correct. mon erreur – gyurisc

Répondre

1

vous pouvez utiliser ParseControl, ce qui rendrait l'ensemble assez trivial, puisque vous pouvez accéder à la propriété Colspan.

+0

Je peux faire l'analyse sans problème et accéder aux propriétés aussi. Ce dont j'ai besoin est une sorte de logique qui remplirait les cellules manquantes avec des valeurs de sorte que le tableau résultant sera rectangulaire – gyurisc

+0

@gyurisc, ah ok. ne pouvez-vous pas simplement lire le colspan, et ajouter x nombre de 1 à la «liste des lignes»? c'est-à-dire, s'il n'est pas présent, 1, sinon valeur. par exemple 'rowList.AddRange (System.Linq.Enumerable.Repeat (cellValue, cellColspan))' – jasper

+0

C'est ce que j'essaie de faire. Essayer de gérer les rowpsans et colspan, mais je pensais qu'il y a peut-être déjà des solutions toutes faites. – gyurisc

0

Vous pouvez le mettre dans un XmlDocument, puis bouclez-le. Je ne sais pas si c'est la meilleure solution, mais cela fonctionne. Peut-être que LINQ to XML?