Autor Beitrag
erfahrener Neuling
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 232
Erhaltene Danke: 19

Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
BeitragVerfasst: 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:
ausblenden 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);          //funktioniert noch

//headline
XmlDeclaration dec = xmlDocument.FirstChild as XmlDeclaration;        //hatte eigentlich immer die Kopfzeile 'version="1.0"' geliefert, 
string header = Tools.RemoveEnd(dec.Value,@" encoding = ""utf-8""");  //jetzt kommt 'version=\"1.0\" total komisch

//connectionString 
string conString = xmlDocument.SelectSingleNode("//Connection/@ConnectionString")?.Value;     //konnte davor immer problemlos auch ohne Fragezeichen gelesen werden
                                                                                              //jetzt kommt IMMER null dabei raus
//auch in die Schleife kommt er nicht mehr rein, obwohl NICHTS verändert
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 user profile iconChristian S.: Titel geändert.
doublecross
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 149
Erhaltene Danke: 27

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18867
Erhaltene Danke: 1660

W10 x64 (Chrome, Edge)
Delphi 10.4 Ent, Oxygene, C# (VS 2019), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 15.03.16 11:50 
user profile iconerfahrener Neuling hat folgendes geschrieben Zum zitierten Posting springen:
funkionierte keine Xml-Funktion mehr richtig
Was genau meinst du denn damit?
Gibt es eine Fehlermeldung, kommt ein falsches Ergebnis heraus, ...?
erfahrener Neuling Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 232
Erhaltene Danke: 19

Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 232
Erhaltene Danke: 19

Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
BeitragVerfasst: Mi 16.03.16 09:14 
hat noch jemand eine Idee? bin langsam am verzweifeln :/
erfahrener Neuling Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 232
Erhaltene Danke: 19

Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
BeitragVerfasst: 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 ;)