《魔乐Windows Mobile UIM联系人备份XML文件转换为魔乐android版UIM联系人备份XML文件》
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; using System.Windows.Forms; namespace TransformXML { class Program { private static Dictionary<String, String> contacts = new Dictionary<string, string>(); [STAThreadAttribute] static void Main(string[] args) { XmlDocument xmlDoc = new XmlDocument(); XmlNode root = null; string fileName = string.Empty; try { using (OpenFileDialog dialog = new OpenFileDialog()) { dialog.AddExtension = false; dialog.AutoUpgradeEnabled = true; dialog.CheckFileExists = false; dialog.CheckPathExists = false; dialog.DefaultExt = "xml"; dialog.DereferenceLinks = true; dialog.Filter = "xml文件(*.xml)|*.xml|所有文件(*.*)|*.*"; dialog.FilterIndex = 0; dialog.InitialDirectory = System.Environment.SpecialFolder.MyDocuments.ToString(); dialog.Multiselect = false; dialog.RestoreDirectory = true; dialog.ShowHelp = false; dialog.SupportMultiDottedExtensions = true; dialog.Title = "打开魔乐管理软件(Windows Mobile)UIM联系人备份XML文件"; if (dialog.ShowDialog() == DialogResult.OK) { fileName = dialog.FileName; } } if (fileName == null || fileName.Length <= 0) { return; } xmlDoc.Load(fileName);//从指定的文件(包含路径)加载XML文件 //xmlDoc.LoadXml("<?xml version="1.0" encoding="UTF-8"?><root></root>");//从XML字符串加载XML文件 root = xmlDoc.SelectSingleNode("Contacts"); } catch (System.Xml.XmlException ex) { Console.WriteLine(ex.Message); } catch (System.Xml.XPath.XPathException ex) { Console.WriteLine(ex.Message); } if (root != null) { XmlNodeList nodeList = root.ChildNodes; if (nodeList != null) { XmlElement element = null; foreach (XmlNode node in nodeList) { element = (XmlElement)node; if (element != null) { if (element.HasChildNodes) { string name = string.Empty; string mobile = string.Empty; foreach (XmlNode childNode in element.ChildNodes) { element = (XmlElement)childNode; if (element.Name.Equals("FirstName") && element.InnerText != null) { name = element.InnerText;//获取姓名 } else if (element.Name.Equals("Mobile") && element.InnerText != null) { mobile = element.InnerText;//获取电话号码 } } contacts.Add(name, mobile); } } } } } transformXmlDocument(); } private static void transformXmlDocument() { string fileName = string.Empty; using (SaveFileDialog dialog = new SaveFileDialog()) { dialog.AddExtension = true; dialog.AutoUpgradeEnabled = true; dialog.Title = "存储为魔乐管理软件(Android)UIM联系人备份XML文件"; dialog.DefaultExt = "xml"; dialog.Filter = "xml文件(*.xml)|*.xml|所有文件(*.*)|*.*"; dialog.FilterIndex = 0; dialog.InitialDirectory = System.Environment.SpecialFolder.MyDocuments.ToString(); dialog.OverwritePrompt = true; dialog.RestoreDirectory = true; dialog.ShowHelp = false; if (dialog.ShowDialog() == DialogResult.OK) { fileName = dialog.FileName; } } if (fileName == null || fileName.Length <= 0) { return; } using (XmlTextWriter writer = new XmlTextWriter(fileName, System.Text.Encoding.UTF8)) { writer.Formatting = Formatting.Indented; writer.WriteStartDocument(true);//写入XML文件注释 writer.WriteStartElement("Contacts");//建立根节点元素 foreach (String key in contacts.Keys) { writer.WriteStartElement("Contact");//建立第一节点元素 writer.WriteStartElement("Name");//建立子节点元素 writer.WriteString(key); writer.WriteEndElement(); writer.WriteStartElement("Starred");//建立子节点元素 writer.WriteString("0"); writer.WriteEndElement(); writer.WriteStartElement("PhoneList"); writer.WriteStartElement("Phone"); writer.WriteStartAttribute("Type"); writer.WriteString("2");//实现"Type=2"的属性设定 writer.WriteEndAttribute(); writer.WriteString(contacts[key]); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndElement();//第一节点结束 } writer.WriteEndElement();//根节点结束 writer.WriteEndDocument();//XML文档结束 writer.Flush(); writer.Close(); } } } }