2009-08-27 20 views
2

我對一些HTML輸出文件使用Linq to XML。我需要將無窮大符號(∞)放在某些表格單元的輸出代碼中。我正在創建一個像這樣的XElementLinq to XML - 試圖打印Infinity圖標

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

var document = new XDocument(table); 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中代替無限符號的價值,我看到一箇中文字符,當我把它粘貼在這裏時,可能會也可能不會通過:蜴 – 2009-08-27 06:36:41

+0

@Joel:是的,我剛剛檢查過,無限大U + 221E。將編輯。 – 2009-08-27 07:05:13

+0

謝謝,我今天會試試這個,讓你知道它是怎麼回事。 – 2009-08-27 10:07:23