想做一个小的demo 学习中遇到一点小问题 请大神指导
通过一个简单的转换 不求转换精准
2条回答 默认 最新
- Chavez_cn 2016-04-28 03:11关注
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); } } }
解决 1无用
悬赏问题
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 spring后端vue前端
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥65 汇编语言除法溢出问题