StreamReader を使用してファイルから HTML を読み取り、ReadToEnd() 関数を呼び出すコードがあります。HTML は文字列として格納されます。
次に、このコード行を呼び出します。
string bookmarksBar = HTMLDoc.Substring(HTMLDoc.IndexOf(">Bookmarks bar</H3>"), HTMLDoc.IndexOf("</DL><p>"));
ここで何が起こっているかというと、HTML の特定のセクションが必要なので、string Substring メソッドを使用しています。最初の引数はstartIndexで、2 番目の引数はlengthです。
">Bookmarks bar</H3>"
IndexOf メソッドを使用して、このコード行がとの間のテキスト セクションを返すようにしています。"</DL><p>"
"</DL><p>"
したがって、返される文字列の末尾は が見つかった場所になるはずですよね?
問題は、文字列</DL><p>
が見つかった場所で終わらず、323 文字後、この行で終わることです (返される文字列がどこで終わるかを示すために、4 つのアスタリスクを挿入しました)。
ICON="data:image/png;base64,iVBORw0KGgoAAA****ANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABbklEQVQ4je3RPWuTYQCF4fs875uYKEilOA
"</DL><p>"
この時点で文字列が一致しないため、ここで終了する理由がわかりません。
したがって、ここに HTML のより大きなセクションがあります。
jNpXrXKt4WFgn/KY1J1yBg874KWb0Vmr+BSttzgKt3LuBAAAAAElFTkSuQmCC\"></A>\r\n </DL><p>\r\n <DT><H3 ADD_DATE=\"1282073650\" LAST_MODIFIED=\"1301438557\">Link 1</H3>\r\n <DL><p>\r\n <DT><H3 ADD_DATE=\"1282073650\" LAST_MODIFIED=\"1286905747\">Link2</H3>\r\n <DL><p>\r\n <DT><A HREF=\"http://creators.xna.com/en-GB/create_detail#tour_four\" ADD_DATE=\"1282073650\" ICON=\"data:image/png;base64,iVBORw0KGgoAAA"
上記の HTML にが表示"</DL><p>"
されているのに、なぜ「KGgoAAA」で停止するのではなく、その時点で停止しないのでしょうか。
何か案は?
ありがとう