中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

东丽区| 同心县| 邛崃市| 开原市| 鞍山市| 津市市| 偃师市| 曲阳县| 巴中市| 南靖县| 金阳县| 鄂托克前旗| 富顺县| 崇文区| 绍兴市| 云南省| 同德县| 长治市| 昌邑市| 六安市| 无棣县| 漳浦县| 滨州市| 高邮市| 文成县| 金寨县| 宜兰县| 改则县| 连州市| 乌审旗| 石阡县| 高要市| 资讯| 靖远县| 屏山县| 普格县| 东至县| 文化| 苍南县| 特克斯县| 清流县|