ここで解決できない問題があります。ここに解析したい html のようなものがいくつかあるとしましょう。このすべての html は、ページ上の 1 つのリスト内にあります。そして、私が書いた例のように名前が繰り返されます。
<li class = "seperator"> a date </li>
<li class = "lol"> some text </li>
<li class = "lol"> some text </li>
<li class = "lol"> some text </li>
<li class = "seperator"> a new date </li>
<li class = "lol"> some text </li>
<li class = "seperator"> a nother new date </li>
<li class = "lol"> some text </li>
<li class = "lol"> some text </li>
私はhtmlagility packを使用して、すべてのliオブジェクトを個別に解析し、ほぼ希望どおりにフォーマットしました。私のprint atmは次のようになります。
"a date" "some text"
"some text"
"some text"
"some text"
"a new date" "some text"
"a nother new date " "some text"
"some text"
"some text"
私が達成したいこと:
"a date" "some text"
"a date" "some text"
"a date" "some text"
"a date" "some text"
"a new date" "some text"
"a nother new date " "some text"
"a nother new date " "some text"
"a nother new date " "some text"
しかし問題は、すべてのセパレーターの下で、すべての lol オブジェクトの数が異なる可能性があることです。したがって、ある日、Web ページの日付 1 の下に 1 つの lol オブジェクトがあり、次の日には 10 個の lol オブジェクトがある場合があります。したがって、区切り記号の間にある lol オブジェクトの数をどうにかして数えるためのスマートで簡単な方法があれば、私はうんざりしています。または、これを理解する別の方法がある場合は?たとえば、htmlagilitypack 内。はい、最初のオブジェクトの前だけでなく、すべての lol オブジェクトの前に正しい日付が必要です。セパレータークラスが最後の lol オブジェクトの下で終了していれば、これは簡単なことでしたが、残念ながらそうではありません...ここにコードを貼り付ける必要はないと思いますが、基本的にはページを解析し、seperators オブジェクトと lol オブジェクトを抽出してリストに追加します。そこでそれらを seperator オブジェクトと lol オブジェクトに分割します。