91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

XmlDocument.LoadXml上的坑

發布時間:2020-06-19 23:42:17 來源:網絡 閱讀:2810 作者:BoyTNT 欄目:編程語言

XmlDocument加載xml文檔,可以用Load加載實體文件,也可以用LoadXml加載字符串,但是使用的時候有個小坑需要注意。先來看以下幾行代碼:

var xml = new XmlDocument();
xml.Load("test.xml");                                                // <--- 方法1
xml.LoadXml(File.ReadAllText("test.xml", Encoding.UTF8));            // <--- 方法2
xml.LoadXml(Encoding.UTF8.GetString(File.ReadAllBytes("test.xml"))); // <--- 方法3


運行一下,會發現方法1和2沒什么區別,但方法3會報錯:

System.Xml.XmlException: 根級別上的數據無效。 第 1 行,位置 1。


原因出在UTF8的BOM上,Windows系統下,UTF8文件保存會在頭部保存3個字節,EF BB BF,如果按文本方式處理文件(File.ReadAllText),得到的字符串是不會包含這3個不可見字符的,但如果用二進制方式處理文件再轉字符串(File.ReadAllBytes再GetString),得到的字符串就有問題了,導致XmlDocument認為XML格式不合法。


對本地文件來說,一般不太可能用到方法3,但是如果是從遠程接收文件,就會遇到與方法3類似的情況了,此時需要識別一下,如果有BOM,要去除掉再轉化字符串。



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

尚义县| 香格里拉县| 镇巴县| 文山县| 阿荣旗| 万全县| 泽库县| 文昌市| 通榆县| 黑山县| 观塘区| 株洲市| 山西省| 广宁县| 买车| 阳城县| 安岳县| 乐亭县| 江山市| 屯昌县| 同仁县| 河间市| 营口市| 汶上县| 宁国市| 界首市| 南昌县| 巨野县| 宣化县| 龙陵县| 沾化县| 吉林市| 长顺县| 石首市| 保定市| 安仁县| 广西| 安福县| 黔西县| 九台市| 顺昌县|