2009-08-27 14 views
2

Ich verwende Linq zu XML für einige HTML-Ausgabedateien. Ich muss das Unendlichkeitssymbol (∞) in den Code in der Ausgabe in einigen Tabellenzellen platzieren. Ich erstelle ein XElement wie diesesLinq to XML - Drucken des Infinity-Symbols

var table = new XElement("table", 
      new XElement("tr", 
       new XElement("td", "∞") 
      ) 
     ); 

var Dokument = neue XDocument (Tabelle); Dokument.Speichern (myFile);

und wenn die Datei gespeichert wird, sehe ich nicht ∞, stattdessen sehe ich &#8734. Wie verhindere ich, dass diese Übersetzung stattfindet?

Antwort

5

LINQ to XML macht das Richtige - es geht davon aus, dass, wenn Sie ihm eine Zeichenfolge als Inhalt geben, dies der Inhalt ist, den Sie sehen möchten. Es entkommt für dich. Sie möchten nicht wirklich jedem <, > und & selbst entgehen lassen.

Was Sie tun müssen, geben Sie den tatsächlichen Inhalt, den Sie wollen - das ist das Unendlichkeitssymbol. Also versuchen Sie dies:

var table = new XElement("table", 
      new XElement("tr", 
       new XElement("td", "\u8734") 
      ) 
     ); 

Das kann gut am Ende nicht als eine Einheit in der Ausgabedatei herauskommen, nur das codierte Zeichen - aber das sollte in Ordnung sein, solange Sie nicht Codierung Probleme haben .

EDIT: Ich habe gerade überprüft, und das Unendlichkeitssymbol ist eigentlich U + 221E, also wollen Sie stattdessen "\ u221e". Ich kann nicht wirklich sehen, was U + 8734 sein soll ... im Moment ist es vielleicht nicht in Unicode definiert.

+0

Für was es wert ist, in LINQPad, anstelle eines Unendlichkeitssymbols, sehe ich ein chinesisches Zeichen, das vielleicht nicht durchkommen kann, wenn ich es hier einfügen: 蜴 –

+0

@Joel: Yup, ich habe gerade überprüft und unendlich ist U + 221E. Wird bearbeiten. –

+0

Danke, ich werde das heute versuchen und euch wissen lassen, wie es geht. –