从StringReader.ReadLine()C#中的特定行检索值

时间:2014-06-30 08:17:57

标签: c# winforms

请您分享您对如何检索包含文本的特定行的想法。我在本地存储的动态html文件中使用.Contains作为我的源搜索两个值。

第一个值很好,但第二个值并不容易。最接近的唯一/静态文本片段距离所需值为6行。

这就是我所拥有的:

string html = File.ReadAllText(@"C:\\Path\HtmlFile.html");

using (var stringReader = new StringReader(html))
{
    string line;

    do
    {
        line = stringReader.ReadLine();

        if (line != null)
        {
            if (line.Contains("'MyFirstUniqueID' :'"))
            {
                int uniqueOneIdStart = line.IndexOf(("ID' :'"), StringComparison.Ordinal) + ("ID' :'").Length;
                int uniqueOneIdEnd = line.IndexOf("'});", uniqueOneIdStart, StringComparison.Ordinal);

                MyFirstUniqueIDList.Add(line.Substring(uniqueOneIdStart, uniqueOneIdEnd - uniqueOneIdStart));
             }

             if (line.Contains("'MySecondUniqueID' :'"))
             {
                 // 6 lines below is the value needed.
                 for (int i = 0; i < 6; i++)
                 {
                     var j = stringReader.ReadLine();

                     // the 6th popup window shows my value.
                     MessageBox.Show(j);
                 }
             }
         }

         //File.Delete(@"C:\\Path\HtmlFile.html");
     } while (line != null);
}

这就是html文件的样子:

'MySecondUniqueID' :'
</td>
<td style="">
Some-dynamic-value&nbsp;
</td>
<td style="">
Finally-HERE-is-the-value-I-need&nbsp;

理想情况下,一旦我能够从第6行获得值,但是我会将它们添加到MySecondUniqueIDList.Add(...)

任何建议都将不胜感激。 - 谢谢Mark。

1 个答案:

答案 0 :(得分:0)

这项工作有一个很棒的功能Html Agility Pack