我有代码使用 StreamReader 从文件中读取 HTML,然后调用 ReadToEnd() 函数。HTML 存储为字符串。
然后我调用这行代码:
string bookmarksBar = HTMLDoc.Substring(HTMLDoc.IndexOf(">Bookmarks bar</H3>"), HTMLDoc.IndexOf("</DL><p>"));
所以这里发生的是我想要 HTML 的特定部分,所以我使用字符串 Substring 方法。第一个参数是startIndex,第二个参数是length。
我正在使用 IndexOf 方法,因此这行代码将返回一段文本,它应该介于">Bookmarks bar</H3>"
和"</DL><p>"
所以返回字符串的结尾应该是在哪里"</DL><p>"
找到的,对吧?
那么问题是字符串没有在</DL><p>
找到的地方结束,而是在 323 个字符之后结束,在这一行(我插入了四个星号来说明返回的字符串在哪里结束):
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"
您可以"</DL><p>"
在上面的 HTML 中看到 ,那么为什么它不在那个点停止,而不是在“KGgoAAA”处停止呢?
有任何想法吗?
谢谢