Bestimmte Zeichen aus Textdatei auslesen - C# WinForms-Anwendung


metalcat303

Grünschnabel
Hallo,

ich hätte da gern mal ein Problem.
Leider reichen die Zeichen im Titel nicht aus, um das Problem zu konkretisieren.

Ich habe eine Internetabfrage ausgeführt (Webrequest/Webresponse) und den abgefragten XML-Code in einer Textdatei gespeichert.

Code:
                WebRequest oRequest = WebRequest.Create("URL" + txtisbn.Text);
                WebResponse oResponse = (WebResponse)oRequest.GetResponse();

                StreamReader sr = new StreamReader(oResponse.GetResponseStream());
                string srResult = sr.ReadToEnd();

                using (StreamWriter sw = new StreamWriter("c:\\test.txt"))
                {
                    //srResult = Convert.ToString(sw);
                    sw.Write(srResult);
                    //this.rtxtausgabe.Text = Convert.ToString(sw);
                }

Die Daten, die ich benötige stehen nun also zwischen "<text>" und "</text>". Da ich noch nicht all zu bewandert bin mit C# und noch gar keine Erfahrungen mit dem Lesen und Ausgeben von XML-Dateien, habe ich die Textdatei-Variante benutzt.

So, nun möchte ich also die in der Textdatei gespeicherten Werte zwischen den eckigen Klammern auslesen... Aber nur bestimmte und nicht alle...
Und genau da fängt mein Problem an... Mir ist klar, wie ich eine Datei komplett auslese... Dank MSDN weiß ich auch, wie das zeilenweise Auslesen funktioniert, denke ich... (in den ersten Versuchen sah es zumindest gut aus!)

Nach dem, was ich hier im Forum bei VB, PHP und co. beim Suchen gefunden habe, komme ich wohl um ein Array nicht drum herum. Oder gibt es noch eine andere Lösung?

Nun hab ich allerdings auch nicht so die Ahnung von Arrays und müsste mich da erst rantasten.

Hat jemand eine Idee, wie ich das umsetzen könnte?

P.S.: Mein Code ist nicht perfekt, aber das muss er im Moment auch nicht sein... Alle evtl. Fehler werden mit catch-Befehlen abgefangen, was für den Anfang ausreichen dürfte!
 

sheel

I love Asm
Hi

was heißt "bestimmte Werte"?
Wie schaut die Datei zB. aus und was davon möchtest du dann haben?
 

metalcat303

Grünschnabel
Oh sorry, wenn das nicht klar genug rüber kam.
Hier jetzt mal der XML-Code aus der Textdatei, der aus dem Internet abgerufen wird.

Code:
<?xml version="1.0" encoding="UTF-8"?>

<ISBNdb server_time="2012-05-23T12:01:40Z">
<BookList total_results="1" page_size="10" page_number="1" shown_results="1">
<BookData book_id="it_handbuch" isbn="3142250433" isbn13="9783142250434">
<Title>IT-Handbuch</Title>
<TitleLong></TitleLong>
<AuthorsText>Hans J. Petersen, Carsten Rathgeber, Klaus Richter, </AuthorsText>
<PublisherText publisher_id="westermann_berufsbildung">Westermann Berufsbildung</PublisherText>
</BookData>
</BookList>
</ISBNdb>

So, ich brauche nun die Daten aus "Title", "AuthorsText" und "PublisherText". Diese müssen ausgelesen und jeweils in eine Textbox ausgegeben werden. (?)
 
Zuletzt bearbeitet:

metalcat303

Grünschnabel
Hey,

gibt es keine andere Möglichkeit, als den XMLReader zu nutzen?

Weil dann bräuchte ich ja eigentlich den ganzen Prozess mit dem Textdatei erstellen nicht, sondern könnte das ja dann auch direkt über eine Variable aus dem Internet abrufen und dann auslesen. Oder nicht?
 

sheel

I love Asm
Ja, das geht auch.

Andere Lösung... du könntest natürlich alle Zeichen durchgehen und dabei ermitteln,
wo welcher <>-Block beginnt und aufhört...aber damit machst du dann auch nur das,
was der XMLReader fertig in sich hat. Wozu dann neu programmieren?
Als Übung etc. gut, aber wenn man nur am Ergebnis interessiert ist
ist eine fertige Lösung schneller.
 

Forum-Statistiken

Themen
272.356
Beiträge
1.558.615
Mitglieder
187.830
Neuestes Mitglied
hansmeiser