我的XmlReader有問題。 問題是,讀者在閱讀網頁只有2次,但我需要更多一點... 如果我打電話給我的讀者從方法:Android上的XmlReader
public string Meth1()
{
string tvcal = "";
string url = "http://www.nbrb.by/Services/XmlExRates.aspx?ondate=" + dtp1.ToString("MM/dd/yyyy");
XmlReader reader = XmlReader.Create(url);
while (reader.Read())
{
if (reader.Name.Equals("Currency"))
{
reader.MoveToFirstAttribute();
try
{
if (Int32.Parse(reader.Value) == 145)
{
reader.ReadToFollowing("CharCode");
currencyUSD = reader.ReadElementContentAsString();
reader.ReadToFollowing("Name");
currencyUSD += " " + reader.ReadElementContentAsString();
reader.ReadToFollowing("Rate");
currencyUSD += " " + reader.ReadElementContentAsString() + " руб.\n";
tvcal += ("На Дату------" + dtp1.ToShortDateString() + "------\n");
tvcal += (currencyUSD);
}
if (Int32.Parse(reader.Value) == 19)
{
reader.ReadToFollowing("CharCode");
currencyEUR = reader.ReadElementContentAsString();
reader.ReadToFollowing("Name");
currencyEUR += " " + reader.ReadElementContentAsString();
reader.ReadToFollowing("Rate");
currencyEUR += " " + reader.ReadElementContentAsString() + " руб.\n";
tvcal += (currencyEUR);
}
if (Int32.Parse(reader.Value) == 190)
{
reader.ReadToFollowing("CharCode");
currencyRUR = reader.ReadElementContentAsString();
reader.ReadToFollowing("Name");
currencyRUR += " " + reader.ReadElementContentAsString();
reader.ReadToFollowing("Rate");
currencyRUR += " " + reader.ReadElementContentAsString() + " руб.\n";
tvcal += (currencyRUR);
break;
}
}
catch { }
}
}
return tvcal;
}
它編譯和一切都很好,那麼如果我叫它再次它仍然工作返回我的結果。 但是,如果我嘗試打電話給它第三次它在這裏沒有錯誤剎車:while (reader.Read())
該讀者的另一個問題,當我試圖調用enother類在那裏使用讀者。 冷杉我在我的班級調用方法Meth1
,它給了我結果,然後我打電話給另一個班,其中包含2個方法,如Meth1
,他們做的是工作,但對於靜態日期。而在編譯到while (reader.Read())
其他類的第二個方法(XmlReader的第三個對象)的時刻,它將hendle發回到android應用程序,並在幾秒鐘後剎車。
我已經搜索了這樣的問題,但什麼也沒找到。 在Windows上運行的另一個應用程序正在與類似的類和方法正常工作。
謝謝,這確實有幫助!) 這樣一個簡單的方法來解決這個問題!) –