C# Visual Studio C#

Vithooshan13

Newbie
Registriert
Nov. 2022
Beiträge
5
Hallo zusammen,

ich habe bei Visual Studio 2022 einen Code geschrieben, um aus XML Dateien bestimmte Daten auszulesen:

static void Main(string[] args)
{
XmlReader reader = XmlReader.Create("C:\\Users\\Vito_\\OneDrive\\Desktop\\TestConfig2.xml");
while (reader.Read())
{
if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "Workspacemonitoring"))
{
if ((reader.HasAttributes))
{
Console.WriteLine("number: " + reader.GetAttribute("number") + "name: " + reader.GetAttribute("name"));
}

}
}
Console.ReadLine();

Jetzt habe ich das Programm gedebuggt und ich kann nicht im Terminal sehen, welche Daten er mir aus dem XML gelesen hat.
Muss ich noch was einstellen, sodass ich explizit sehen kann, was er mir ausgibt?
Im Anhang ist das was ich sehen kann, sobald ich debugge.

Ich wäre euch dankbar für eine Antwort.

Lg Vitho
 

Anhänge

  • qq.png
    qq.png
    21,1 KB · Aufrufe: 137
Zuletzt bearbeitet:
Benutze bitte Code-Tags um Deinen Quelltext zu formatieren damit er lesbar wird.
C#:
static void Main(string[] args)
{
    XmlReader reader = XmlReader.Create("C:\\Users\\Vito_\\OneDrive\\Desktop\\TestConfig2.xml");
    while (reader.Read())
    {
        if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "Workspacemonitoring"))
        {
            if ((reader.HasAttributes))
                {
                     Console.WriteLine("number: " + reader.GetAttribute("number") + "name: " + reader.GetAttribute("name"));
                }
        }
    }
    Console.ReadLine();
}

Vithooshan13 schrieb:
Jetzt habe ich das Programm gedebuggt
Was heißt das denn konkret?

Vithooshan13 schrieb:
und ich kann nicht im Terminal sehen, welche Daten er mir aus dem XML gelesen hat.
Naja. Die Bedingungen sind doch relativ klar wann er ein Console.WriteLine macht.
Vielleicht solltest Du direkt nach dem while erst mal reader.Name ausgeben, um zu gucken, ob und was da überhaupt rein kommt.
 
  • Gefällt mir
Reaktionen: Vithooshan13 und SomeDifferent
Vithooshan13 schrieb:
Jetzt habe ich das Programm gedebuggt und ich kann nicht im Terminal sehen, welche Daten er mir aus dem XML gelesen hat.
Spannend wäre durchaus auch wie dein XML-File aussieht. Ansonsten kannst du mit dem Debugger ja Stück für Stück durchgehen und sehen, ob er überhaupt korrekt wie du es erwartest durch den Code geht oder z. B.
reader.Name oder reader.HasAttributes etc. fehlschlägt. Setz dir da Breakpoints und schau mal genauer rein was eigentlich passiert.
 
  • Gefällt mir
Reaktionen: Vithooshan13 und SomeDifferent
Das was Du da im Anhang hast, ist die Debug Ausgabe. Wenn Du dort was sehen willst, musst Du Debug.WriteLine() verwenden. Die Console.WriteLine()-Ausgabe landet in dem Konsolenfenster das sich öffnen sollte, wenn Du das Programm startest.
 
  • Gefällt mir
Reaktionen: Vithooshan13
Ein aussagekräftigerer Threadtitel wäre auch nicht schlecht gewesen. Sonst kann man auch einfach schreiben "Hilfe!".
 
  • Gefällt mir
Reaktionen: Vithooshan13
Das Problem hab ich gelöst.
Unzwar war das Element und Attribut falsch angegeben, bzw. kleingeschrieben, was in der XML-Datei groß geschrieben ist.
 
Tu dir selbst einen Gefallen und lies dich ein, wie man mit Visual Studio anständig debuggt.

Darunter versteht man nämlich nicht, einfach laufen zu lassen und etwas in das Ausgabefenster schreiben zu lassen.
 
  • Gefällt mir
Reaktionen: Vithooshan13
Vithooshan13 schrieb:
Unzwar war das Element und Attribut falsch angegeben, bzw. kleingeschrieben, was in der XML-Datei groß geschrieben ist.
Noch ein kleiner Hinweis dazu. In solchen Szenarien lohnt es sich vor dem String-Vergleich ein .toLower() zu machen und dann halt entsprechend zu vergleichen, damit man unabhängig davon ist ob der Kram groß oder klein geschrieben ist.
 
  • Gefällt mir
Reaktionen: Paderman und Vithooshan13
Ich hätte jetzt noch ein Problem...
<X1>-2200</X1> unzwar möchte ich den Wert -2200 auslesen...
Der Bereich ist ja gegeben von X1 ...
Kann ich das dann so machen wie oben, dass ich über die Elemente und Attribute gehe ?
 
Zurück
Oben