Problem beim Laden einer *.xml (Split)

CrimeTime89

Mitglied
Hallo,
ich versuche grade eine XML zu Laden, doch leider läuft bei dem Splitten irgendetwas schief, hier der Code:

Code:
                                foreach (XmlNode node in nodes)
                                {
                                    string[] strBreak = node.InnerText.Split(' ');

                                    tempPoint.X = float.Parse(Regex.Replace(strBreak[0] + " " + strBreak[1], " ", ""));
                                    tempPoint.Y = float.Parse(Regex.Replace(strBreak[2] + " " + strBreak[3], " ", ""));
                                    tempPoint.Z = float.Parse(Regex.Replace(strBreak[4] + " " + strBreak[5], " ", ""));
                                    List.Items.Add(tempPoint.ToString());

                                }

hier ein Beispiel der *.xml:

Code:
<?xml version="1.0"?>
<Profile>
  <point>5883.203 4780.205 -72.88606</point>
</Profile>

ich hätte gern dies Angezeigt:
5883.203,4780.205,-72.88606
 
Zuletzt bearbeitet:
Hi

Und wie äußert sich "läuft schief"?
Hast du dir das Array angeschaut, ob das Problem wirklich beim Split liegt? Was steht denn drin?
 
strBreak[0] = "5883.203"
strBreak[1] = "4780.205"

Sobald tempPoint.X ausgeführt wurde und ich Moveover das X gehe ist der Inhalt: 5.88320342E+13
dies ist das was "Schlief Läuft und dann bei und bei strBreak[3] wird das "catch" ausgelöst weil es nicht vorhanden ist, jedenfalls splittet er Falsch soviel ist fakt ;)
 
Auch wenn ich mich nicht wirklich mit .NET befasse. Aber das Array sollte eigentlich nur 3 Felder haben, bei dir hat es aber 6.
 
stimmt schon, weil ich vorher eine andere *.xml geladen hatte wo ich das so machen musste.

hier der neue code:
Code:
                                    tempPoint.X = float.Parse(Regex.Replace(strBreak[0] + " ", "", ""));
                                    tempPoint.Y = float.Parse(Regex.Replace(strBreak[1] + " ", "", ""));
                                    tempPoint.Z = float.Parse(Regex.Replace(strBreak[2] + " ", "", ""));

inhalt der xml:
5883.203 4780.205 -72.88606

OutPut:
5883203, 4780205, -7288606
( es fehlen die Punkte)
 
Kannst du das Regex.Replace nicht auch rausnehmen? Ich kann den Nutzen davon irgendwie nicht erkennen.
Versuche einfach mal folgendes:
Code:
tempPoint.X = float.Parse(strBreak[0], System.Globalization.CultureInfo.CreateSpecificCulture("en-us"));
tempPoint.Y = float.Parse(strBreak[1], System.Globalization.CultureInfo.CreateSpecificCulture("en-us"));
tempPoint.Z = float.Parse(strBreak[2], System.Globalization.CultureInfo.CreateSpecificCulture("en-us"));
 
Hi

Damit wird eine CultureInfo-Instanz erzeugt. Darin stehen u.a. die Formatierungsinformationen für Zahlen.
Da eine Anwendung standardmäßig die Sprache des Systems nutzt ist das hier notwendig
 

Neue Beiträge

Zurück