Autor |
Beitrag |
erfahrener Neuling
Beiträge: 233
Erhaltene Danke: 19
Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
|
Verfasst: Di 15.03.16 10:56
Hallo,
ich hab vorgestern ein Programm geschrieben, welches bis gestern Nachmittag einwandfrei funktioniert hat und welches ich bedenkenlos benutzen konnte.
Als ich mich dann heute morgen wieder rangesetzt habe, funkionierte keine Xml-Funktion mehr richtig! Und das, ohne etwas am Code verändert zu haben (ich weiß klingt komisch, aber verwirrt ich gerade heftig).
hier der code:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| StringBuilder result = new StringBuilder();
XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(Path); XmlDeclaration dec = xmlDocument.FirstChild as XmlDeclaration; string header = Tools.RemoveEnd(dec.Value,@" encoding = ""utf-8"""); string conString = xmlDocument.SelectSingleNode("//Connection/@ConnectionString")?.Value; foreach (XmlNode tableNode in xmlDocument.SelectNodes("//Table")) { string tableName = tableNode.SelectSingleNode("./@Name").Value; string memberName = tableNode.SelectSingleNode("./@Member").Value; string typeName = tableNode.SelectSingleNode("./Type/@Name").Value; . . . } |
Woran kann das jetzt eurer Meinung nach liegen? Bin total ratlos, da am Code oder an der Xml-Datei nichts verändert wurde!
Moderiert von Christian S.: Titel geändert.
|
|
doublecross
Beiträge: 149
Erhaltene Danke: 27
Windows 7
C#; Visual Studio 2015
|
Verfasst: Di 15.03.16 11:50
Hallo,
erst einmal halte ich es immer für gefährlich einfach davon auszugehen, dass bestimmte Knoten im XML-Dokument vorhanden sind und einfach darauf zuzugreifen ohne ihre Existenz zu überprüfen.
Aber abgesehen davon ist es schwer hier etwas zu verstehen ohne das XML-Dokument und dessen Aufbau zu kennen. Von daher wäre es schön, wenn du hier auch das problematische XML veröffentlichen könntest.
|
|
jaenicke
Beiträge: 19277
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 15.03.16 11:50
erfahrener Neuling hat folgendes geschrieben : | funkionierte keine Xml-Funktion mehr richtig |
Was genau meinst du denn damit?
Gibt es eine Fehlermeldung, kommt ein falsches Ergebnis heraus, ...?
|
|
erfahrener Neuling
Beiträge: 233
Erhaltene Danke: 19
Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
|
Verfasst: Di 15.03.16 12:21
Zitat: | Was genau meinst du denn damit?
Gibt es eine Fehlermeldung, kommt ein falsches Ergebnis heraus, ...? |
Also jaein.
bei string conString = xmlDocument.SelectSingleNode("//Connection/@ConnectionString")?.Value; kommt ohne Fragezeichen schon ein Error, weil er es nicht mehr findet (was er aber vorher problemlos getan hat)
bei der foreach-Schleife kommt er scheinbar gar nicht rein(!?). Ich hab keine Ahnung was da los ist.
Ich lade mal noch das (stark gekürzte) xml-Dokument hoch
Zitat: | erst einmal halte ich es immer für gefährlich einfach davon auszugehen, dass bestimmte Knoten im XML-Dokument vorhanden sind und einfach darauf zuzugreifen ohne ihre Existenz zu überprüfen. |
ja kann gut sein, aber da ich es eh erstmal nur zu testzwecken erstellt habe und wusste, dass die Knoten existieren, war das bisher kein Problem
PS: wieso ist es hier verboten, .dbml-Dateien hochzuladen?
Einloggen, um Attachments anzusehen!
|
|
erfahrener Neuling
Beiträge: 233
Erhaltene Danke: 19
Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
|
Verfasst: Mi 16.03.16 09:14
hat noch jemand eine Idee? bin langsam am verzweifeln :/
|
|
erfahrener Neuling
Beiträge: 233
Erhaltene Danke: 19
Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
|
Verfasst: Do 17.03.16 11:28
Ok Problem erkannt und gelöst.
Es hat sich herausgestellt, dass mein 'Ausbilder' so freundlich war, mir ein Namespace in die dbml-Datei zu packen (Das war DIE Änderung), ohne es mir zu sagen. Da ich recht kurz überhaupt erst mit xml zu tun habe, hatte ich noch nie etwas von einem xml-namespace gehört und zuvor beim testen/im Programm auch keins benutzen müssen. Aber ein Namespace-Manager ist da ganz hilfreich
|
|
|