把文件转换成xml

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.IO;
using System.Xml;
 
namespace MyWindows
{
     ///<summary>
     /// 这个示例演示如何把Office文件编码为xml文件以及如何把生成的xml文件转换成Office文件
     /// 把文件转换成xml格式,然后就可以用web服务,.NET Remoting,WinSock等传送了(其中后两者可以不转换也可以传送)
     /// xml解决了在多层架构中数据传输的问题,比如说在客户端可以用Web服务获取服务器端的office文件,修改后再回传给服务器
     /// 只要把文件转换成xml格式,便有好多方案可以使用了,而xml具有平台无关性,你可以在服务端用.net用发布web服务,然后客户端用
     /// Java写一段applit小程序来处理发送过来的文件,当然我举的例子几乎没有任何显示意义,它却给了我们不少的启示.
     /// 另外如果你的解决方案是基于多平台的,那么他们之间的交互最好不要用远程应用程序接口调用(RPC),应该尽量用基于文档的交互,
     /// 比如说.net下的MSMQ,j2ee的JMQ.
     ///
     /// 示例中设计到好多的类,我并没有在所有的地方做过多注释,有不明白的地方请参阅MSDN,这是偶第一个windows程序,有不对的地方
     /// 欢迎各位指导
     ///</summary>
     public class Form1 : System.Windows.Forms.Form
     {
 
 
         ///<summary>
         /// 声明四个Button,一个OpenFileDialog,一个SaveFileDialog,以及两个XmlDocument
         ///</summary>
          private System.Windows.Forms.Button button1;
          private System.Windows.Forms.Button button2;
          private System.Windows.Forms.OpenFileDialog openFileDialog1;
          private System.Windows.Forms.SaveFileDialog saveFileDialog1;
          private System.Windows.Forms.Button button3;
          private System.Windows.Forms.Button button4;
          private System.Xml.XmlDocument mXmlDoc;
          private System.Xml.XmlDocument doc;
          private System.ComponentModel.Container components = null;
 
         public Form1()
         {
              //
              // Windows 窗体设计器支持所必需的
              //
              InitializeComponent();
 
              //
              // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
              //
         }
 
         ///<summary>
         /// 清理所有正在使用的资源。
         ///</summary>
          protected override void Dispose( bool disposing )
         {
              if( disposing )
              {
                   if(components != null)
                   {
                        components.Dispose();
                   }
              }
              base.Dispose( disposing );
         }
 
          #region Windows 窗体设计器生成的代码
         ///<summary>
         /// 设计器支持所需的方法 - 不要使用代码编辑器修改
         /// 此方法的内容。
         ///</summary>
          private void InitializeComponent()
         {
              this.button1 = new System.Windows.Forms.Button();
              this.button2 = new System.Windows.Forms.Button();
              this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
              this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
              this.button3 = new System.Windows.Forms.Button();
              this.button4 = new System.Windows.Forms.Button();
              this.SuspendLayout();
              //
              // button1
              //
              this.button1.Location = new System.Drawing.Point(96, 32);
              this.button1.Name = "button1";
              this.button1.TabIndex = 0;
              this.button1.Text = "生成xml";
              this.button1.Click += new System.EventHandler(this.button1_Click);
              //
              // button2
              //
              this.button2.Location = new System.Drawing.Point(96, 80);
              this.button2.Name = "button2";
              this.button2.TabIndex = 1;
               this.button2.Text = "生成doc";
              this.button2.Click += new System.EventHandler(this.button2_Click);
              //
              // button3
              //
              this.button3.Location = new System.Drawing.Point(8, 32);
              this.button3.Name = "button3";
              this.button3.TabIndex = 2;
              this.button3.Text = "加载doc";
              this.button3.Click += new System.EventHandler(this.button3_Click);
              //
              // button4
              //
              this.button4.Location = new System.Drawing.Point(8, 80);
              this.button4.Name = "button4";
              this.button4.TabIndex = 3;
              this.button4.Text = "加载xml";
              this.button4.Click += new System.EventHandler(this.button4_Click);
              //
              // Form1
              //
              this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
              this.ClientSize = new System.Drawing.Size(184, 141);
              this.Controls.Add(this.button4);
              this.Controls.Add(this.button3);
              this.Controls.Add(this.button2);
              this.Controls.Add(this.button1);
              this.Name = "Form1";
              this.Text = "Form1";
              this.ResumeLayout(false);
              //
              //手工注册一下Load和Closed事件
              //
              this.Load += new System.EventHandler(this.Form1_Load);
              this.Closed += new System.EventHandler(this.Form1_Closed);
 
         }
          #endregion
 
         ///<summary>
         /// 从这个入口启动窗体
         ///</summary>
         static void Main()
         {
              Application.Run(new Form1());
         }
         ///<summary>
         /// 把加载的Office文件转换为xml文件
         ///</summary>
         ///<param name="sender"></param>
         ///<param name="e"></param>
          private void button1_Click(object sender, System.EventArgs e)
         {        
              saveFileDialog1.Filter = "xml 文件|*.xml";//设置打开对话框的文件过滤条件
              saveFileDialog1.Title = "保存成 xml 文件";//设置打开对话框的标题
              saveFileDialog1.FileName="";
              saveFileDialog1.ShowDialog();//打开对话框
 
              if(saveFileDialog1.FileName != "")//检测用户是否输入了保存文件名
              {
                   mXmlDoc.Save(saveFileDialog1.FileName);//用私有对象mXmlDoc保存文件,mXmlDoc在前面声明过
                   MessageBox.Show("保存成功");
              }             
         }
 
         ///<summary>
         /// 把加载的xml文件转换为Office文件
         ///</summary>
         ///<param name="sender"></param>
         ///<param name="e"></param>
          private void button2_Click(object sender, System.EventArgs e)
         {
              //从私有对象dox里选取me节点,这里的一些对xml对象的操作详细说明可以参考msdn以获取更多信息
              XmlNode node=doc.DocumentElement .SelectSingleNode("me") ;
              XmlElement ele=(XmlElement)node;//获取一个xml元素
              string pic=ele.GetAttribute ("aa");//获取ele元素的aa属性并报讯在一个临时字符串变量pic
 
              byte[] bytes=Convert.FromBase64String (pic);//声明一个byte[]用来存放Base64解码转换过来的数据流
                       
              //从保存对话框里获取文件保存地址
              saveFileDialog1.Filter = "Office Documents(*.doc, *.xls, *.ppt)|*.doc;*.xls;*.ppt";
              saveFileDialog1.Title = "保存成 office 文件";
              saveFileDialog1.FileName="";
              saveFileDialog1.ShowDialog();
 
              if(saveFileDialog1.FileName != "")
              {
                   //创建文件流并保存
                   FileStream outfile=new System.IO .FileStream (saveFileDialog1.FileName,System.IO.FileMode.CreateNew);
                   outfile.Write(bytes,0,(int)bytes.Length );
                   MessageBox.Show("保存成功");
              }
        
         }
 
         ///<summary>
         /// 加载窗口时的一些初始化行为
         ///</summary>
         ///<param name="sender"></param>
         ///<param name="e"></param>
         public void Form1_Load(object sender, System.EventArgs e)
         {
              MessageBox.Show("欢迎使用蛙蛙牌文档转换器");
         }
         ///<summary>
         /// 卸载窗体时把临时变量全部释放
         ///</summary>
         ///<param name="sender"></param>
         ///<param name="e"></param>
         public void Form1_Closed(object sender, System.EventArgs e)
         {
              mXmlDoc=null;
              doc=null;
         }
         ///<summary>
         /// 加载office文件并编码序列花为一个XmlDocument变量
         ///</summary>
         ///<param name="sender"></param>
         ///<param name="e"></param>
          private void button3_Click(object sender, System.EventArgs e)
         {     
              string strFileName;
              openFileDialog1.Filter = "Office Documents(*.doc, *.xls, *.ppt)|*.doc;*.xls;*.ppt" ;
               openFileDialog1.FilterIndex = 1;
              openFileDialog1.FileName = "";
              openFileDialog1.ShowDialog();
              strFileName = openFileDialog1.FileName;
              if(strFileName.Length != 0)
              {
                   System.IO.FileStream inFile=new FileStream(strFileName,System.IO.FileMode.Open,System.IO.FileAccess.Read);
                   byte[] binaryData=new byte [inFile.Length];
                   inFile.Read(binaryData, 0,(int)inFile.Length);
                   string mStr=Convert.ToBase64String(binaryData);
                   string hh=mStr;
                   mXmlDoc=new System.Xml.XmlDocument();
           
                   mStr=string.Format ("<wawa><me aa=/"{0}/"/></wawa>",mStr);
                   mXmlDoc.LoadXml( mStr);
                   MessageBox.Show("加载成功");
              }        
        
         }
         ///<summary>
         /// 加载xml文件到私有对象dox
         ///</summary>
         ///<param name="sender"></param>
         ///<param name="e"></param>
          private void button4_Click(object sender, System.EventArgs e)
         {
              string strFileName;
              openFileDialog1.Filter = "xml 文件|*.xml" ;
              openFileDialog1.FilterIndex = 1;
              openFileDialog1.FileName = "";
              openFileDialog1.ShowDialog();
              strFileName = openFileDialog1.FileName;
              //If the user does not cancel, open the document.
              if(strFileName.Length != 0)
              {
                   doc=new XmlDocument();
                   doc.Load(strFileName);
                   MessageBox.Show("加载成功");
              }
                  
         }
                  
     }
}
 
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Java程序,可以将CSV文件转换为XML文件: ```java import java.io.BufferedReader; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class CsvToXmlConverter { public static void main(String[] args) { String csvFile = "input.csv"; // 输入CSV文件 String xmlFile = "output.xml"; // 输出XML文件 BufferedReader br = null; String line = ""; String cvsSplitBy = ","; try (FileWriter fw = new FileWriter(xmlFile)) { fw.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); fw.write("<data>\n"); br = new BufferedReader(new FileReader(csvFile)); while ((line = br.readLine()) != null) { String[] data = line.split(cvsSplitBy); fw.write(" <record>\n"); fw.write(" <field1>" + data[0] + "</field1>\n"); fw.write(" <field2>" + data[1] + "</field2>\n"); fw.write(" <field3>" + data[2] + "</field3>\n"); fw.write(" </record>\n"); } fw.write("</data>\n"); System.out.println("XML file created successfully!"); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } } } ``` 在这个示例中,我们假设输入文件是`input.csv`,输出文件是`output.xml`。程序将逐行读取CSV文件,将每一行拆分为字段,并将其写入XML文件。在本示例中,我们将CSV文件中的每一行转换为一个XML记录,并将每个字段转换为XML元素。XML文件的结构如下所示: ```xml <?xml version="1.0" encoding="UTF-8"?> <data> <record> <field1>value1</field1> <field2>value2</field2> <field3>value3</field3> </record> <record> <field1>value4</field1> <field2>value5</field2> <field3>value6</field3> </record> ... </data> ``` 你可以根据自己的需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值