我的方法有点问题。因此,首先,我从我的硬件加载一个html网站。它很小,但是:这是网上的代码:
<!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。以下是我的代码:
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的字符串,因此我希望逐行读取和复制日期:
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行中
<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“结尾。我试图将节点作为
HtmlNode node in doc.DocumentNode.SelectNodes("//body/pre/br")但这不管用。
发布于 2016-01-21 00:49:53
你需要选择P标签..。我希望类似于SelectNodes("//p")或SelectNodes("//body/p")这样的内容,而不是选择单个body元素(作为内部文本将包含P标记中所有字符串的连接)。
https://stackoverflow.com/questions/34913435
复制相似问题