[c#] Text aus Datei auslesen und Filtern

BlockeR

Erfahrenes Mitglied
Hallo Leute,
ich bin noch relativ neu in c# und habe jetzt ein kleines Problem.
Ich möchte aus einer Datei Zeilen auslesen, welche einen bestimmten Inhalt haben.
In der Datei, die ich auslesen möchte, stehen, neben vielen anderen, die Zeile=>

Code:
<data name="DOWN" xml:space="preserve">
Diese Zeile taucht in der Form sehr oft auf, nur das sich die Stelle, an der sich bei diesem Beispiel "DOWN" befindet, ändert.

und darunter
Code:
<value>Fra</value>
Hier das selbe wie an der erster, nur das sich hier der value also "Fra" verändert.

Die Zeilen stehen immer untereineander.
Nun würde ich gerne diese Zeilen herausfiltern.
Also z.B. wie oben beschrieben hätte ich gerne die Ausgabe.
String1 = "Down";
String1_1 = "Fra";
Das könnte ich ja, wenn ich die ganze Zeile habe, mit .Split() machen, oder?


Finde aber leider keine passende Methode dafür, bis jetzt nur die Methode .EndsWith(). Nur leider funktioniert das nicht so wie ich das gerne hätte.^^
Hier der Code den ich bis jetzt habe:

Code:
 public static void Ausgabe()
        {
            String line = "";
            try
            {
                StreamReader reader = new StreamReader(@"C:\Datei.resx");
                while ((line = reader.ReadLine()) != null)
                {
                    if(line.EndsWith("</value>"))
                    {
                        Console.WriteLine(line);    
                    }
                    
                }
                reader.Close();
            }
            catch
            {
                // Fehler beim Öffnen der Datei
            }

Hoffe jemand kann mir helfen.

Vielen Dank schon mal.

Mfg Blocker
 
Zuletzt bearbeitet:
Danke für die schnelle Antwort.
Habe das ganze mal bei Google eingegeben, leider bin ich Neuling und finde die Beispiele ein wenig kompliziert.

Habe u.a. diese Seite hier gefunden=>
http://www.codeproject.com/KB/cpp/myXPath.aspx

Hast du vielleicht noch ein anschauliches Beispiel oder so etwas in der Art für mich?


mfg
Blocker
 
Zuletzt bearbeitet:
hallo,
so hab jetzt mal ne bisschen rumprobiert und auch ein paar Beispiele gefunden.
Hab das gleich mal versucht anzuwenden, aber leider bekomme ich da einen Haufen Fehler.

Mein Funktion sieht so aus=>

Code:
        public static void Suche()
        { 
           XmlDocument xDoc = new XmlDocument();
            xDoc.LoadXml(@"C:\datei.resx");

            XmlNode myNode = xDoc.SelectSingleNode("//value[1]");
            String text = myNode.InnerText;

            Console.WriteLine(text);
         }

und als Fehler bekomme ich dann:

Code:
Unbehandelte Ausnahme: System.Xml.XmlException: Data at the root level is invalid. Line 1, positi
on 1.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
   at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlTextReaderImpl.Read()
   at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
   at System.Xml.XmlDocument.Load(XmlReader reader)
   at System.Xml.XmlDocument.LoadXml(String xml)
   at ConsoleApplication_1.Program.Suche() in C:\Dokumente und Einstellungen\blocker\Eigene Datei
en\Visual Studio 2008\Projects\ConsoleApplication_1\ConsoleApplica
tion_1\Program.cs:line 83
   at ConsoleApplication_1.Program.Main(String[] args) in C:\Dokumente und Einst
ellungen\blocker\Eigene Dateien\Visual Studio 2008\Projects\ConsoleApplication_1\Co
nsoleApplication_1\Program.cs:line 16
In line 16 wir nur meine Funktion aufgerufen.
Kann mir jemand da weiter helfen?

Mfg
Blocker
 
Hi

Wie wurde die Resource-Datei erstellt?
Kommt die von dir oder ist die über VS erstellt?
Poste doch mal den Inhalt.
 
Danke für die schnelle Antwort.
Die Datei habe ich bekommen, das sind zu übersetzende Texte z.b. vom dänischen ins deutsche oder so....

besteht hauptsächlich aus solchen Zeilen =>

Code:
<root>
...
  <data name="DOWN" xml:space="preserve">
    <value>Fra</value>
</root>

davon sind es ca. 20 Stück untereinander. Zwischen Root und <data name ...> stehen noch ein ganzer Haufen <xsd> - Elemente, die ich hier nicht unbedingt posten möchte, weil es sich um sehr, sehr viele handelt...^^

Hoffe das hilft irgendwie weiter.


Mfg Blocker
 
Hi

Ich hab das ganze versucht hier nachzustellen. Die Datei die du bekommen hast ist definitiv fehlerhaft. Bei mir hat das Laden funktioniert.

Als erstes vermisse ich die Xml-Informationen im Kopf:
XML:
<?xml version="1.0" encoding="utf-8"?>
sowie das schließende Tag zu data.
Weiteres kann ich jedoch nicht sagen, da ich deine Datei nicht habe
 
Zuletzt bearbeitet von einem Moderator:
Danke für deine Mühe.
Naja den Kopf habe ich drin, aber nicht gepostet, sorry.
Den Tag zu schließen, mit </data> ist auch erfolgt, nachdem du es mir gesagt hast. ^^
Geht aber leider trotzdem nicht. Selber Fehler.
Kann es vielleicht sein das das an der Zeile im Code liegen kann? :

Code:
XmlNode myNode = xDoc.SelectSingleNode("//value[1]");
 

Neue Beiträge

Zurück