4 Stimmen

C# LINQ to XML fehlendes Leerzeichen

Ich schreibe eine XML-Datei "von Hand" (d.h. nicht mit LINQ to XML), die manchmal einen open/close-Tag mit einem einzelnen Leerzeichen enthält. Wenn ich mir die resultierende Datei ansehe, erscheint alles korrekt, Beispiel unten...

<Item>
  <ItemNumber>3</ItemNumber>
  <English> </English>
  <Translation>Ignore this one. Do not remove.</Translation>
</Item>

... die Gründe dafür sind vielfältig und unerheblich, es wird getan.

Später verwende ich ein C#-Programm mit LINQ to XML, um die Datei zurückzulesen und den Datensatz zu extrahieren...

XElement X_EnglishE = null;  // This is CRAZY
foreach (XElement i in Records)
{
    X_EnglishE = i.Element("English");  // There is only one damned record!
}
string X_English = X_EnglishE.ToString();

... und prüfen Sie, ob der Eintrag in der Datenbank unverändert ist. Ich stelle eine Änderung fest, wenn ich Elemente verarbeite, bei denen das Feld ein einzelnes Leerzeichen enthielt...

+E+ Text[3] English source has been altered:
    Was: >>> <<<
    Now: >>><<<

... die >>> und <<< Teile habe ich hinzugefügt, um zu sehen, was passiert (Leerzeichen sind schwer zu erkennen). Ich habe damit herumgespielt, aber ich kann nicht erkennen, warum das so ist. Es ist nicht absolut kritisch, da das Feld (noch) nicht verwendet wird, aber ich kann nicht darauf vertrauen, dass C# oder LINQ oder was auch immer dies tut, wenn ich nicht verstehe, warum es so ist. Was macht das also und warum?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X