做項目時,為了更方便的檢索與使用XMl,我比較習慣用XElement,但是,其他人覺得麻煩,“凡是foreach一下就好了嘛!”,我只能說,時代在變,你們Outer了,兩種不同的xml解析方式在代碼維護方面帶來了不少的麻煩,但我們並不願意妥協,下面講講我遇到的問題,比較一下兩種解析方式的不同。
命名空間:
XmlDocument:System.Xml;
XElement:System.Xml.Linq;
反序列化:
XmlDocument doc=new XmlDocument();
doc.LoadXml(xmlStr);
XElement xe = XElement.Parse(xmlStr);
其中XElement.Parse(xmlStr)時,當xmlStr中含有&符號時,會失敗!
序列化:
XmlDocument 在ToString()的時候只保留文本,而XElement則會保留格式,這在一些ajax使用里面會有些許問題,一般xml序列化我們並不需要保留空格、回車、制表符等格式,js處理起來有些麻煩。血的教訓啊!
去掉格式代碼:
string xml = "<root> <id> </id></root>";
XElement xe = XElement.Parse(xml);
string rx = Regex.Replace(xe.ToString(), ">\\s*<", "><");
Console.Write(rx);
Console.ReadKey();
此文慢慢記錄發現,長期更新!