首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#与StringReader分离

C#与StringReader分离
EN

Stack Overflow用户
提问于 2016-01-21 00:43:18
回答 1查看 632关注 0票数 1

我的方法有点问题。因此,首先,我从我的硬件加载一个html网站。它很小,但是:这是网上的代码:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <title></title>
	<meta charset="utf-8" />
</head>
<body>
    <p>001;20151006;0000;1800;1000;999;1;</p>
    <p>001;20151006;0100;1300;990;999;1;</p>
    <p>001;20151006;0200;1100;1000;999;1;</p>
    <p>001;20151006;0300;1500;1100;999;1;</p>
    <p>001;20151006;0400;2200;500;999;1;</p>
    <p>001;20151006;0500;1900;100;999;1;</p>
    <p>001;20151006;0600;0700;990;999;1;</p>
    <p>001;20151006;0700;0300;998;999;1;</p>

</body>
</html>

我只需要采取身体和加载第二和第三排是什么是yyyyMMdd HH:mm。以下是我的代码:

代码语言:javascript
复制
 char[] pommidChar = { ';' };
WebRequest request = WebRequest.Create(
              "http://localhost:49443/Wyniki.html");

        request.Credentials = CredentialCache.DefaultCredentials;

        WebResponse response = request.GetResponse();
       Console.WriteLine(((HttpWebResponse)response).StatusDescription);

        Stream dataStream = response.GetResponseStream();

        StreamReader reader = new StreamReader(dataStream);

        string responseFromServer = reader.ReadToEnd();

        //  Console.WriteLine(responseFromServer);

        HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
        doc.LoadHtml(responseFromServer);
        // Console.WriteLine(doc);



        string formatString = "yyyyMMddHHmm";//201510060000;
        reader.Close();//   = "201510060000"
        response.Close();
        string[] slowa;

        string tekst ;
        foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//body"))
        {

            string temp = "";
            Console.WriteLine(node.InnerText);
            id = node.InnerText;
            tekst = node.InnerText;
            //Console.WriteLine("Node"+node.ToString());
            slowa = id.Split(pommidChar);
            temp = slowa[1] + slowa[2];
            //Console.WriteLine(slowa[30]);
            Console.WriteLine("string pobrany ze strony"+temp);
            DateTime dt = DateTime.ParseExact(temp, formatString, CultureInfo.InvariantCulture,
                                    DateTimeStyles.None);

            Console.WriteLine("Ostatnia dana z parse:" + dataParse1.ToString("yyyy-MM-dd HH:mm"));
            Console.WriteLine("Aktualna pobrana z urzadzenia:" + dt.ToString("yyyy-MM-dd HH:mm"));

}现在在tekst中,我有来自//body的字符串,因此我希望逐行读取和复制日期:

代码语言:javascript
复制
using (StringReader readerr = new StringReader(tekst))
        {
            string[] splitline;
            string line;

            while ((line = readerr.ReadLine()) != null)
            {

               Console.WriteLine(line);

               splitline = line.Split(pommidChar);

              //  Console.WriteLine(splitline[0]);
                Console.WriteLine(splitline[1]);

            }
            readerr.Close();
        }

但是,这是.I在“拆分字符串”中只有一个字符串的线索,它的001。所以有人可以从线上描述我的其他字符串在哪里?这个工作,slowa = id.Split(pommidChar);工作,准确地分割了我想要的东西,但我不能逐行阅读。

我通过这个问题是因为这个问题已经解决了。现在我还有一个愚蠢的问题要问别人。我的大学博士从网络上更改了代码。现在,所有变量(html代码)都设置在1行中

代码语言:javascript
复制
<body>
    <pre><br>001;20151006;000034;1800;1000;999;1<br>001;20151006;000035;1800;1000;999;1;<br>001;20151006;000036;1800;1000;999;1;</pre>
</body>

所以,我如何从BR标签中提取字符串。我的解决办法是一条条地把他们都带走。我在想,对于长字符串的循环是好的。我错了,因为我不知道我必须得到多少绳子。记住,1 "quete“以"001”开头,以"1“结尾。我试图将节点作为

代码语言:javascript
复制
HtmlNode node in doc.DocumentNode.SelectNodes("//body/pre/br")

但这不管用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-21 00:49:53

你需要选择P标签..。我希望类似于SelectNodes("//p")SelectNodes("//body/p")这样的内容,而不是选择单个body元素(作为内部文本将包含P标记中所有字符串的连接)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34913435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档