1
A
回答
0
你的問題不是一個十六進制字符(這些都是罰款)。您的問題是XML中不允許使用的字符。錯誤信息中給出了該字符的十六進制值(所有字符都具有十六進制值),以幫助您確定該字符是什麼,這特別有用,因爲在XML中不允許使用的字符通常是控制字符,非字符和不匹配的替代品,無論如何,所有這些都不是可打印的字符。
換句話說,如果您看到此錯誤消息,則您嘗試將某些內容解析爲不是XML的XML。
有幾件事情,可能導致此:
- 在發送的XML中的錯誤(這是意味着是XML,但它是越野車)。
- 你剛拿起錯誤的文件。
- 您在解密和/或解壓縮之前使用加密和/或壓縮文件。
- 由於您正在閱讀錯誤級別的流(非常罕見),您正在拾取傳輸的文物。
第一種情況可能更糟糕,因爲它可能是由別人的錯誤引起的,有些人甚至不相信XML中存在不允許字符被用於諸如實際上不是字符的事情, t解決他們的混亂(gah!)。有時你可以過濾掉垃圾,但這總是充滿了煩惱。
事實上,你在代碼示例的其他地方談論過解密,這讓我懷疑情況3:它是加密的XML,你還沒有解密它。
它可能是兩者的混合體,有人試圖將原始加密八位字節打包成XML格式。這是無法完成的,但是如果您需要以XML格式存儲加密的八位字節,則必須以兼容XML的格式(如base-64或十六進制)對這些八位字節進行重新編碼。或者,也可以根本不使用XML。
相關問題
- 1. XML解析錯誤:十六進制值是無效字符
- 2. 將字符解釋爲十六進制
- 3. 在C++中將十六進制十六進制字符標記爲十進制
- 4. 解析一個小端的十六進制字符串爲十進制
- 5. c:解析長字符串內的十六進制數字
- 6. 如何避免異常「字符串中的無效十六進制字符」
- 7. 從十六進制字符
- 8. 十六進制字符?
- 9. 十六進制字符
- 10. 十六進制字符到實際十六進制字符的字符串
- 11. 十六進制到十六進制的Python字符串(帶前導零)
- 12. xml開頭的意外前導十六進制字符
- 13. 轉換十六進制字符串十六進制值
- 14. 將字符串轉換爲十六進制到十六進制
- 15. 十六進制字符串到十六進制整數
- 16. python字符串與十六進制轉義十六進制值
- 17. 使用attoparsec解析n個十六進制數字
- 18. 解析十六進制/創建傳出字符串
- 19. 如何解析十六進制顏色字符串整數
- 20. 將十六進制字符串表示法解析爲整數
- 21. Javascript - 十進制字符串的十六進制字符串
- 22. 解析64位十六進制數
- 23. 解析十六進制'0x0976b8'顏色android
- 24. 解析Java中的十六進制
- 25. 使用php刪除xml文件中的十六進制字符
- 26. 使用十進制或十六進制
- 27. 字符串爲十六進制和十六進制轉換爲字符串
- 28. 從十六進制字符串轉換爲十六進制字符數組
- 29. PHP將字符串轉換爲十六進制和十六進制字符串
- 30. XML xs:int十六進制值
您正在嘗試加載你的xml,然後解密你的數據是有意的嗎? – 2011-05-20 09:16:15
噢好吧這是個好主意,用FileStream讀取,解密並用xml解析它?你的意思是? – 2011-05-20 09:18:40
我不知道你用CryptoConfing加密的確切方式,但是我可以看到它在xml加載之前沒有被使用過。即使我猜你必須使用文件流解密文件,首先使用XDocument.Parse來加載它。這是除非加密的東西是用XML標籤寫的,那麼錯誤是別的。 – 2011-05-20 09:24:21