我从表中获取数据,但数值显示不易操纵。用一些条件合并两个列表
我的HTML结构,如:
<table>
<tbody>
<tr>
<td>
<span>1</span>
<span>0</span>
<br>
<span>
<span>Good Luck</span>
<img src="/App_Themes/Resources/img/icon_tick.gif" width="3" height="7">
</span>
</td>
</tr>
<tr>
<td>
<b>Nowaday<br></b>
<p>hook<br>zp</p>
</td>
</tr>
</tbody>
</table>
但是,当我试图让数据将是这样的:
10Good LuckNowadayhookzp
我用这个代码:
ReadOnlyCollection<IWebElement> lstTable = browser.FindElements(By.XPath("table/tbody/tr"));
foreach (IWebElement val in lstTable)
{
ReadOnlyCollection<IWebElement> lstTDElement = val.FindElements(By.XPath("td"));
ReadOnlyCollection<IWebElement> lstSpecialEle =
val.FindElements(By.XPath("//td/span | //td/b | //td/p"));
}
它会创建很多行(在<tr>
标签中我找到了大约60个00),我不知道如何安排正确的列。
因为每一列的数据都可以为null或者有很多值。
当前,我有lstTDElement
包含两列(实数:10列)。
和lstSpecialEle
包含所有必要的数据。 我是过滤器只有:[//td/span | //td/b | //td/p]
。
如何整合lstSpecialEle
到lstTDElement
与权利列。使用foreach
与条件?
编辑:
典型的,我会收到来自lstTDElement
是:10Good LuckNowadayhookzp
。
lstSpecialEle
将创建包含我需要的所有值的许多行。
问题是:我不知道如何安排从lstSpecialEle
到表中的所有行。
我的表有两个<tr>
标签;这意味着它有两列。如何将lstSpecialEle
中的所有值整理到此列中。
应该是这样:
Num Time
1 0 Good Luck Nowaday hookzp
如前所述,数据是动态的,第一<tr>
或第二<tr>
不能有标签像<span>
,或没有标签<b>
等(它只是不出现,没有新<tag>
加)
是的,我的XPath元素前加'.',并限制从6000行16 - > 30行。而且数据是动态的,所以我无法确切知道'.td/span'或者'.d/t'的数量。因为可以在X列没有任何数据。有任何想法像在行中插入特殊字符null。为此,我们需要知道列包含行。 – vanloc
@VănLộc你意味着你已经得到了你想要的null和exact元素组合的列表。对?? –
@VănLộc如果我是对的,你可以简单地过滤它为null条件并获得子列表。查看更新的答案。希望它的作品... :) –