2012-06-08 121 views
-1

請幫忙解釋爲什麼數據集無法讀取編碼的XML?c#xml字符串特殊字符解析EntityName時發生錯誤。第1行,

string xml = "<?xml version=\"1.0\" standalone=\"yes\" ?> 
    <DataSet><node>it's my \"node\" & i like it</node></DataSet>"; 
    string encodedXml = System.Security.SecurityElement.Escape(xml); 
    DataSet ds = new DataSet(); 
    ds.ReadXml(New XmlTextReader(new StringReader(encodedXml))); 

我檢查了鏈接http://weblogs.sqlteam.com/mladenp/archive/2008/10/21/Different-ways-how-to-escape-an-XML-string-in-C.aspx 我想要做的就是讀取特殊字符的字符串成一個數據集。 任何人都可以將代碼提供給讀取帶有特殊字符的字符串到數據集。 非常感謝

+2

這是否即使編譯字符串?您的字符串文字中包含未加引號的字符串...例如「1.0」 –

+0

您是否嘗試刪除對「System.Security.SecurityElement.Escape」的調用?因爲[doc](http://msdn.microsoft.com/en-us/library/system.security.securityelement.escape.aspx)是sais它將所有尖括號替換爲轉義版本('<'/' >') - 所以'ecnodedXml'不是一個xml文檔。 – vstm

+0

使用System.Security.SecurityElement.Escape的原因是因爲ds.ReadXml(New XmlTextReader(new StringReader(encodedXml)))會引發錯誤。 – sam

回答

0

ds.ReadXml(string)需要的文件名和XML文件不包含XML

+0

對不起,我錯過了原始文章中的XmlTextReader(new StringReader(encodedXml)),但結果是相同的錯誤。 <節點> it ' s我的"節點" &我喜歡它<節點> – sam