2010-11-25 77 views
4

我正在尋找一種方法來編碼XML文檔使用#& 233;編碼。XML Unicode安全編碼

使用這個基本代碼

var xmlDoc = new XmlDocument(); 
xmlDoc.Load(@"D:\Temp\XmlDocBase.xml"); 
xmlDoc.Save(@"D:\Temp\XmlDocBaseCopy.xml"); 

我的XML文檔傳球:

<?xml version="1.0"?> 
<Tag1> 
    <comment>entit&#233;</comment> 
</Tag1> 

<?xml version="1.0"?> 
<Tag1> 
    <comment>entité</comment> 
</Tag1> 

問候

+0

XML在兩種情況下均有效。你想要字符實體而不是實際字符的任何特定原因? – Oded 2010-11-25 16:57:40

+0

它與文檔生成工具(OWL-protégé的附加組件)進行交互,當XML處於第二種格式時,軟件將生成樣式字符。但是你是對的,兩個XML都是有效的XML。 – 2010-11-25 18:07:35

回答

4

您可以強制不支持所有的編碼新聞中心字符(即ASCII)。因爲結果編寫者將被迫使用實體。

XmlDocument doc = new XmlDocument(); 
    doc.LoadXml("<Tag1><comment>entit&#233;</comment></Tag1>"); 

    var writer = XmlTextWriter.Create(
     @"c:\temp\o.xml", 
     new XmlWriterSettings { Encoding = System.Text.ASCIIEncoding.ASCII }); 
    doc.Save(writer); 

結果:

<?xml version="1.0" encoding="us-ascii"?><Tag1><comment>entit&#xE9;</comment></Tag1> 
2

您可以撥打HttpUtility.HtmlEncode在一根繩子上。

return HttpUtility.HtmlEncode("entité"); 

返回entit&#233;

HttpUtility是System.Web程序的一部分。