想做一个小的demo 学习中遇到一点小问题 请大神指导
通过一个简单的转换 不求转换精准
public partial class FrmTxtXml : Form
{
String txtContent = String.Empty;
//
public FrmTxtXml()
{
InitializeComponent();
}
//打开txt文件
private void toolStripOpen_Click(object sender, EventArgs e)
{
using (OpenFileDialog fileDialog = new OpenFileDialog())
{
fileDialog.Filter = "文本文件(*.txt)|*.txt";
if (fileDialog.ShowDialog() == DialogResult.OK)
{
String fileName = fileDialog.FileName;
if (!String.IsNullOrEmpty(fileName))
{
using (StreamReader st = new StreamReader(fileName, System.Text.Encoding.GetEncoding("GBK")))
{
txtContent = st.ReadToEnd();
//读取txt文件到txtTXT文本框
this.txtTXT.Text = txtContent;
st.Close();
}
}
}
}
}
//将txt文件内容转换成xml格式内容
private void toolStripConvert_Click(object sender, EventArgs e)
{
try
{
//将txt内容分解为行数组
String[] lines = this.txtTXT.Text.Split(new string[] { "/r/n" }, StringSplitOptions.None);
String[] heads = null;
if (lines != null && lines.Length > 0)
{
//读取第一行数据,该行数据为xml文件的节点描述数据
heads = lines[0].Split(new string[] { "/t" }, StringSplitOptions.None);
//MessageBox.Show(heads.Length.ToString() + " " + heads[0]);
}
//
StringBuilder sb = new StringBuilder();
sb.Append("<?xml version=/"1.0/" encoding=/"gbk/"?>").Append(Environment.NewLine).Append("<dataRoot>").Append(Environment.NewLine);
//生成xml节点
for (int i = 1; i < lines.Length; i++)
{
if (lines[i] == null || lines[i].Trim().Length < 1)
continue;
String[] info = lines[i].Split(new string[] { "/t" }, StringSplitOptions.None);
sb.Append(createNode(heads, info));
}
sb.Append("</dataRoot>");
this.txtXML.Text = sb.ToString();
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
}
//产生xml节点
private String createNode(String[] head, String[] info)
{
StringBuilder sb = new StringBuilder();
sb.Append("<record>").Append(Environment.NewLine);
for (int i = 0; i < head.Length; i++)
{
sb.Append("<" + head[i] + ">" + info[i] + "</" + head[i] + ">").Append(Environment.NewLine);
}
sb.Append("</record>").Append(Environment.NewLine);
return sb.ToString();
}
//将txtXML文本框内容另存为xml文件
private void toolStripSaveas_Click(object sender, EventArgs e)
{
try
{
String fileName = "";
using (SaveFileDialog fileDialog = new SaveFileDialog())
{
fileDialog.Filter = "XML数据文件(*.xml)|*.xml";
if (fileDialog.ShowDialog() == DialogResult.OK)
{
fileName = fileDialog.FileName;
if (!String.IsNullOrEmpty(fileName))
{
FileStream fs = new FileStream(fileName, FileMode.Create);
//获得字节数组
byte[] data = System.Text.Encoding.GetEncoding("GBK").GetBytes(this.txtXML.Text);
//开始写入
fs.Write(data, 0, data.Length);
//清空缓冲区、关闭流
fs.Flush();
fs.Close();
}
}
}
MessageBox.Show(String.Format("文件成功保存到{0}", fileName));
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
}
}
请问有没有输入输出的文本例子?我试过用自己的文本格式转换不了XML格式