2009-08-27 9 views
2

いくつかのHTML出力ファイルにLinq to XMLを使用しています。無限記号(∞)をいくつかのテーブルセルの出力コードに配置する必要があります。私はこのLinq to XML - 無限記号を印刷しようとしています

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

するvarドキュメント=新しいXDocument(表)のようなのXElementを作成しています。 document.Save(myFile);

ファイルが保存されると、∞が表示されず、代わりに&#8734が表示されます。この翻訳がどうして起こらないようにするには?

答えて

5

LINQ to XMLは正しいことをしています。コンテンツとして文字列を与えると、それは見たいコンテンツです。それはあなたのためにエスケープしています。 <>&のいずれかを自分自身で逃したくはありません。

あなたがする必要があるのは、の実際のコンテンツであるです。これは無限のシンボルです。

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

だけでなく、出力ファイル内のエンティティ、ちょうどエンコードされた文字として出て来ていない終わること - それ限りあなたはエンコードの問題を持っていないとして、大丈夫でなければなりません:これを試してみてください。

編集:私はちょうどチェックして、無限大のシンボルは実際にはU + 221Eなので、代わりに "\ u221e"が必要です。私は実際にU + 8734の意味を見ることはできません...現時点ではUnicodeで定義されていないかもしれません。

+0

LINQPadでは、無限記号ではなく、中国語の文字が表示されます。蜴 –

+0

@Joel:うん、今チェックして無限大ですU + 221E。編集します。 –

+0

ありがとう、私は今日これを試し、どのようにそれが行くかを知らせます。 –

関連する問題