2013-05-21 34 views
-5

我試圖寫的用一個TextWriter XML XML,但我發現我不能寫字<>'「&該文件問題編寫使用的TextWriter

我寫的類如下:

public void Write_File(rss r, string fileName)//-- rss here is a class I built in other place 
{ 
    XmlSerializer serializer = new XmlSerializer(typeof(rss)); 
    TextWriter textWriter = new StreamWriter(path + fileName);//-- path is directory path to save xml file 
    serializer.Serialize(textWriter, r); 
    textWriter.Close();    
} 

誰能幫我解決這個問題

+3

你的描述對找到錯誤沒有多大幫助。 – TGlatzer

+2

使用HtmlEncode編碼字符串 – Satpal

+1

您是否收到錯誤? – Maciej

回答

1

你就不能C#轉換這樣的字符:?

< to &lt; 
> to &gt; 
& to &amp; 

如果允許,您可以銷燬您的XML。如果您需要添加標籤,則不能簡單地使用序列化程序。你需要使用的代碼,例如形式XMLDocument

+0

已經更新的答案。 –

0

只要爲System.Web組件項目建設文件,並充分利用HttpUtility類的字符串編碼是這樣的:

public void Write_File(rss r, string fileName)//-- rss here is a class I built in other place 
{ 
    XmlSerializer serializer = new XmlSerializer(typeof(rss)); 
    TextWriter textWriter = new StreamWriter(path + fileName); 
    serializer.Serialize(textWriter, HttpUtility.HtmlEncode(r)); 
    textWriter.Close();    
} 

,我只能假設你已覆蓋ToString方法rss在這裏返回一個XML字符串,因爲沒有其他方法可以在那裏獲取字符串。

+0

麻煩這是HttpUtility.HtmlEncode(r)require r是System.String的類型。但是這是rss類的一個實例。我嘗試過,但不允許。非常感謝。 –

+0

@Phan,你重寫了RSS類的ToString方法嗎?如果是這樣,請在調用HtmlEncode –

+0

時非常感謝對象在對象上調用ToString! –