本文示範如何將 Office 文檔 (Word、Excel、PPT) 編碼為 XML 文件,再從 XML 還原為 Office 文檔。XML 格式具有平台無關性,解決了多層架構中的數據傳輸問題,可配合 Web Service、.NET Remoting、WinSock 等傳輸方式。
Convert.ToBase64String 編碼為字符串,嵌入 XML 節點屬性 (如 <me aa="Base64字符串"/>)。Convert.FromBase64String 解碼為位元組陣列,寫入文件流還原文檔。private void button3_Click(object sender, EventArgs e) {
// ... 打開文件對話框獲取路徑 ...
FileStream inFile = new FileStream(strFileName, FileMode.Open, FileAccess.Read);
byte[] binaryData = new byte[inFile.Length];
inFile.Read(binaryData, 0, (int)inFile.Length);
string base64Str = Convert.ToBase64String(binaryData);
mXmlDoc = new XmlDocument();
// 構造簡單 XML 結構
string xmlContent = string.Format("<wawa><me aa=\"{0}\"/></wawa>", base64Str);
mXmlDoc.LoadXml(xmlContent);
// ... 提示成功 ...
}
private void button2_Click(object sender, EventArgs e) {
XmlNode node = doc.DocumentElement.SelectSingleNode("me");
XmlElement ele = (XmlElement)node;
string base64Str = ele.GetAttribute("aa");
byte[] bytes = Convert.FromBase64String(base64Str);
// ... 保存文件對話框 ...
FileStream outfile = new FileStream(saveFileDialog1.FileName, FileMode.CreateNew);
outfile.Write(bytes, 0, bytes.Length);
// ... 提示成功 ...
}
完整 WinForms 示例代碼包含 UI 設計器生成代碼、四個按鈕事件 (生成 XML、生成 Doc、載入 Doc、載入 XML) 及輔助方法,可作為文檔轉換模組的參考基礎。