Enabling the storage of an audio file in a XML file
Is there any way to enable the storage of an audio file in a XML file?
Yes, you can store binary data in XML documents. Because of the special characters that are needed by XML, it is necessary to encode the binary data using either the Base64 encoding algorithm, or the hexadecimal encoding algorithm. Read more on this from MSDN here:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebsrv/html/infoset_whitepaper.asp



Download: The Developer's Guide to IoT
The IoT world may be exciting, but there are serious technical challenges that need to be addressed, especially by developers. In this handbook, learn how to meet the security, analytics, and testing requirements for IoT applications.
By submitting your personal information, you agree that TechTarget and its partners may contact you regarding relevant content, products and special offers.
You also agree that your personal information may be transferred and processed in the United States, and that you have read and agree to the Terms of Use and the Privacy Policy.
The System.Convert class contains methods for helping you convert between Base64 and non-Base64 data. Refer to the System.Convert.ToBase64String() and System.Convert.FromBase64String() methods for more information in the MSDN Library.
Here is an example method of how you might read the file in and convert it to a Base64 encoded string. Note that this method is just for demo purposes and I would not recommend reading the entire file in at once like this method is going to show. Read it in segments or asynchronously but never all at once.
using System; using System.Diagnostics; using System.IO; namespace Base64Example { /// <summary> /// Summary description for Base64Encoder. /// </summary> public class Base64 { /// <summary> /// Read the file into a base 64 string (Not an efficient means, just used for demonstration purposes!) /// </summary> /// <param name="path">The name of the file to read</param> /// <returns></returns> public static string ReadFile(string path) { string base64String = string.Empty; try { FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read); if (fs != null) { byte[] bytes = new byte[fs.Length]; int bytesRead = fs.Read(bytes, 0, (int)fs.Length); if (bytesRead > 0) { base64String = System.Convert.ToBase64String(bytes); } } } catch(Exception ex) { Trace.WriteLine(ex); } return base64String; } } }Reversing the process should be trivial. Simply take the string and use the FromBase64String method to convert it back to it's original byte[]. Once converted, write it back out to your file.
Cheers,
Mark
Dig Deeper on C# programming language
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.
Meet all of our Microsoft .Net Development experts
Start the conversation
0 comments