从Div C#StreamReader获取文本

时间:2014-06-05 13:13:05

标签: c# html text-files streamreader

我正在尝试从填充div的文本文件中获取特定的div。 我正在使用streamreader进入文件,但我不知道如何获得完整的div。 得到div之后我会把每一行变成一个字符串,这将被添加到一个列表中。 文本文件如下:

<div id="#SMINLANGUAGE1 ">
English
Hello.
This is a Test
Test 23
</div>
<div id="#SMINLANGUAGE2 ">
Dutch
Hallo.
Dit is een Test
Test 29
</div>
<div id="#SMINLANGUAGE3 ">
Spanish
Hola.
Esto es una Prueba.
Prueba 86
</div>

英语列表将是:

 Index 0: English
 Index 1: Hello.
 Index 2: This is a Test
 Index 3: Test23

1 个答案:

答案 0 :(得分:1)

首先,您需要安装HtmlAgilityPack来解析HTML:

Install-Package HtmlAgilityPack

然后选择//div路径,我们可以从HTML内容中提取所有可用的DIV:

    var doc = new HtmlDocument
    {
        OptionOutputAsXml = true,
        OptionCheckSyntax = true,
        OptionFixNestedTags = true,
        OptionAutoCloseOnEnd = true,
        OptionDefaultStreamEncoding = Encoding.UTF8
    };
    doc.LoadHtml(htmlContent);

    var results = new List<string[]>();
    foreach (var node in doc.DocumentNode.SelectNodes("//div"))
    {
        var divContent = node.InnerText;
        if (string.IsNullOrWhiteSpace(divContent))
            continue;

        var lines = divContent.Trim().Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
        results.Add(lines);
    }