テーブルからデータを取得しますが、値は操作しにくいことがわかります。条件付きで2つのリストをマージする
私の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>
しかし、私は取得しようとしたときのようなデータは次のようになります。
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"));
}
それを:私はこのコードを使用していた
10Good LuckNowadayhookzp
多くの行が作成されます(<tr>
タグで約60 00)、正しい列をどのように配置するのか分かりません。
各列のデータはnullである可能性があります。
現在、lstTDElement
には2つの列(実際には10列)が含まれています。
lstSpecialEle
には、必要なすべてのデータが含まれています。 私はフィルターをつけただけです:[//td/span | //td/b | //td/p]
。
lstSpecialEle
〜lstTDElement
の権利列をどのように統合するか。条件付きのforeach
を使用しますか?
編集:
典型的な、私はlstTDElement
から受信するには、次のとおりです。10Good LuckNowadayhookzp
。
lstSpecialEle
多くの行には必要なすべての値が含まれます。
問題は次のとおりです。lstSpecialEle
からテーブルにすべての行を配置する方法がわかりません。
私のテーブルには2つの<tr>
タグがあります。つまり、2つの列があります。 lstSpecialEle
のすべての値をこの列に整理する方法。
それは次のようにする必要があります:前述のように
Num Time
1 0 Good Luck Nowaday hookzp
、データは動的で、最初<tr>
または第二<tr>
は<span>
のようなタグを持つことができない、またはタグ<b>
を持っていない、など(それだけでは表示されません。 、新しい<tag>
を添加しない)
はい、XPath要素の前に '.'を追加し、6000行から16-> 30行に制限します。データは動的なので、 '.// td/span'や' .// td/b'の正確な数はわかりません。列Xにある可能性があるため、データはありません。行nullに特殊文字を挿入するような考えはありませんか?これを行うには、列に行が含まれていることを知る必要があります。 – vanloc
@VănLộcあなたはあなたが望むヌルと正確な要素の組み合わせでリストを持っていることを意味します。右?? –
@VănLộc私はあなたが単純にそれをヌル状態でフィルタリングしてサブリストを得ることができればいいですか?更新された回答をご覧ください。うまくいくと思います... :) –