XmlReader auf AndroidC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 XmlReader auf Android

Post by Anonymous »

Ich habe ein Problem mit meinem XmlReader.
Die Sache ist, dass der Reader die Webseite nur 2 Mal liest, aber ich brauche etwas mehr.
Wenn ich meinen Reader über die Methode aufrufe:

Code: Select all

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;
}
Es wird kompiliert und alles ist in Ordnung. Wenn ich es erneut aufrufe, funktioniert es immer noch und gibt mir ein Ergebnis zurück.
Aber wenn ich versuche, es zum dritten Mal aufzurufen, bricht es hier ohne Fehler ab:

Code: Select all

while (reader.Read())
Ein weiteres Problem mit diesem Reader trat auf, als ich versuchte, eine andere Klasse aufzurufen, um dort den Reader zu verwenden.
Zuerst rufe ich die Methode Meth1 in meiner Klasse auf, sie liefert mir ein Ergebnis, dann rufe ich eine andere Klasse auf, die 2 Methoden wie Meth1 enthält, sie erledigen die gleiche Aufgabe, aber für statisches Datum. Und in dem Moment, in dem das Kompilieren zu while (reader.Read()) in der zweiten Methode einer anderen Klasse (dem dritten Objekt von XmlReader) kommt, sendet es das Handle zurück an die Android-Anwendung und bricht nach einigen Sekunden ab.
Ich habe nach einem solchen Problem gesucht, aber nichts gefunden.
Eine andere Anwendung, die unter Windows läuft, funktioniert korrekt mit ähnlichen Klassen und Methoden.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post