我有xml我得到的是字節數組,什麼是最好的方式來獲取xml字符串?我tryng使用的XmlTextReader和MemoryStream的,但沒有成功..c#從字節數組創建xml
回答
XmlDocument doc = new XmlDocument();
string xml = Encoding.UTF8.GetString(buffer);
doc.LoadXml(xml);
OR
XmlDocument doc = new XmlDocument();
MemoryStream ms = new MemoryStream(buffer);
doc.Load(ms);
This assum如果您的數據具有UTF8編碼,這通常是XML。另外buffer
這裏是字節數組。
好的答案,雖然MemoryStream是IDisposable,所以不要忘記把它包裝在一個使用塊! :) – firefox1986 2011-04-07 13:58:24
@ firefox1986不需要。 http://stackoverflow.com/a/234257/440502 – Aliostad 2012-12-25 20:45:13
因爲字節順序標記(BOM)我發現這個過載更有用(謝謝Jon Skeet) 'MemoryStream ms = new MemoryStream(buffer,true);' – bkwdesign 2017-03-14 20:09:33
基於編碼,你可以做
string xmlString = System.Text.UTF8Encoding.UTF8.GetString(bytes);
和使用字符串
XmlTextReader reader = new XmlTextReader(new StringReader(xmlString));
使用UTF8類,而不是ASCII ... – NKCSS 2011-04-07 13:52:08
Ooops ... GetBytes接受一個字符串並給出一個字節數組。 GetString接收一個字節數組並給出一個字符串。 FTFY。 – 2011-04-07 14:15:28
看看System.Text.Encoding.UTF8班。它應該讓你把你的字節數組轉換成一個UTF8字符串。
什麼如果它不是UTF8? – 2011-04-07 13:51:49
請參閱此處的[XML編碼默認值](http://www.opentag.com/xfaq_enc.htm)頁面。 UTF8是大多數情況下的正確假設。 – NKCSS 2011-04-07 13:53:22
不過,我想你應該在你的回答中留下一個提示。 – 2011-04-07 13:54:26
假設你的XML是默認的'UTF8'編碼,你可以做這樣的事情;
string xml = System.Text.UTF8Encoding.UTF8.GetString(bytes);
System.Xml.XmlDocument xdoc = new System.Xml.XmlDocument().LoadXml(xml);
或者這個;
XmlDocument doc = new XmlDocument();
using (MemoryStream ms = new MemoryStream(buffer))
{
doc.Load(ms);
}
- 1. 從C++的字節數組創建HICON?
- 2. 創建從字節數組,得到這樣的字節數組
- 3. C# - 從字節創建BMP
- 4. 如何從字節數組創建XpsDocument?
- 5. 如何從HttpPostedFile創建字節數組
- 6. 如何從字節數組創建System.Windows.Media.ImageSource?
- 7. 從字節數組創建BitmapImage
- 8. 從字節數組中創建私鑰
- 9. 創建從一個字節數組WPF
- 10. 從字節數組創建文件
- 11. 從字節數組創建一個CGPDFDocument
- 12. 從字節數組創建typeFace
- 13. 從字節數組創建BufferedImage java
- 14. C#中的BitmapFrame渲染(從字節數組創建)的問題
- 15. Objective-C從數組創建字典
- 16. C#:xml中的字節數組CData
- 17. C#:將字節數組存儲爲XML
- 18. 創建從字節
- 19. C#創建字段數組
- 20. C從TexFile創建數組
- 21. 從XML數據創建數組
- 22. 傳字節數組從C#到C++(COM)
- 23. 從c#中的xml數據創建一個數組#
- 24. 如何創建一個字節數組?
- 25. 創建zip文件到字節數組
- 26. NSUTF16LittleEndianStringEncoding創建一個字節數組
- 27. Pyserial - Python的創建字節數組
- 28. 從字節數組創建正確轉義的字符串
- 29. 從字符串vs文件創建字節數組
- 30. Java從包含空格的字節數組創建字符串
你從哪裏得到字節數組?你知道使用的編碼嗎? – 2011-04-07 13:51:19
XML包含base64編碼數據。 – hs2d 2011-04-07 13:54:58
我的意思是XML文檔的[字符編碼](http://en.wikipedia.org/wiki/Character_encoding)。 – 2011-04-07 13:56:04