想做一个小的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 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python
- ¥15 要给毕业设计添加扫码登录的功能!!有偿
- ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥15 stable diffusion
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条