C#操作xml文档:xml创建、读取xml、xml中写入图片

xml读写

RWXml.cs

创建xml文档

读取/修改xml文档

public class RWXml
{
    /// <summary>
    /// 创建xml文档
    /// </summary>
    public void WriteXml()
    {
        XmlDocument xDoc = new XmlDocument();//xml实例化
        //创建一个声明xml文档所需要的语法的变量
        XmlDeclaration declaration=xDoc.CreateXmlDeclaration("1.0","UTF-8","yes");
        xDoc.AppendChild(declaration);
        //一个xml文档,必须要有根元素
        //创建根节点students
        XmlElement xelem = xDoc.CreateElement("students");
        //把根节点添加到xml文档中去
        xDoc.AppendChild(xelem);
        //添加子节点
        XmlElement elem1= xDoc.CreateElement("student");
        //将第一级的子节点,放置到根节点的下面
        xelem.AppendChild(elem1);
        //给节点添加属性
        elem1.SetAttribute("age","15");
        //添加子节点的子节点
        XmlElement elem11= xDoc.CreateElement("name");
        //将第一级的子节点,放置到根节点的下面
        elem1.AppendChild(elem11);
        //增加节点中的数据
        elem11.InnerText = "张三";
        xDoc.Save("students.xml");           
    }
    /// <summary>
    /// 读取Xml文档
    /// </summary>
    public void ReadXml()
    {
        XmlDocument xDoc = new XmlDocument();//实例化xml文档
        xDoc.Load("students.xml");
        //获取根节点students
        XmlNode node=xDoc.SelectSingleNode("students");
        XmlNodeList nodelist = node.ChildNodes;
        foreach (XmlNode xn in nodelist)
        {
            string name=xn.Name;
            //作类型显示转换
            XmlElement xmle = (XmlElement)xn;
            string age = xmle.GetAttribute("age");
            Console.WriteLine(name + ":" + age);
            //取出节点中的数据
            XmlNodeList childList = xn.ChildNodes;
            foreach (XmlNode m in childList)
            {
                //类型转换
                XmlElement xe = (XmlElement)m;
                string className= xe.Name;
                string name1 = xe.InnerText;
                Console.WriteLine(className+":"+name1);
            }                
        }
        //生成或修改xml文档时,末尾一定要写save方法
        //xDoc.Save("students.xml");
        Console.ReadKey();
    }
}

xml保存读取图片

 // 保存图片到 XML 文件
private void Form1_Load(object sender, System.EventArgs e)
{
    Image img = Image.FromFile(@"E:\MyDocs\My Pictures\样品.jpg");
    System.IO.MemoryStream stream = new System.IO.MemoryStream();
    img.Save(stream, ImageFormat.Jpeg);
    byte[] b = stream.GetBuffer();
    string s = Convert.ToBase64String(b);

    XmlDocument doc = new XmlDocument();
    doc.AppendChild(doc.CreateElement("image"));
    XmlElement elmtData = doc.CreateElement("data");
    elmtData.InnerText = s;
    doc.DocumentElement.AppendChild(elmtData);
    doc.Save("test.xml");
}
// 从 XML 文件中读取图片信息
private void button1_Click(object sender, System.EventArgs e)
{
    XmlDocument doc = new XmlDocument();
    doc.Load("test.xml");
    string s = doc.DocumentElement.SelectSingleNode("data").InnerText;
    byte[] b = Convert.FromBase64String(s);
    MemoryStream stream = new MemoryStream(b);
    Bitmap bitmap = new Bitmap(stream);

    this.pictureBox1.Image = bitmap;
}
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
将导入的图片颜色相同的点的范围写入xml。 使用说明: 2.2.1 默认 系统窗体根据配置文件显示当前时间应关闭的区域。 注:可在界面下方的表格修改关闭区域的相关信息,按【Enter】键完成修改,相关信息将在打印时显示。 2.2.2 临时区域 a) 在下拉列表框(或鼠标左键单击图片需关闭的区域)选择关闭区域或机位,系统窗体显示临时关闭的区域。 b) 在图片的关闭区域单击鼠标右键(或双击工具栏列表框的滑行道、机位等,或在工具栏的列表框选择删除区域,单击鼠标右键选择【删除该区域】),取消所选关闭区域。 c) 在工具栏的列表框选择区域,单击鼠标右键选择【修改区域名】,在标签“请输入新的区域名称”下方的下拉列表框输入新的区域名称,按【Enter】键,当列表框所选区域名改变时,此修改操作完成。 注:1.选择多块区域:单击鼠标左键选择开始区域,单击鼠标右键选择结束区域,则界面显示开始区域至结束区域间所有区域,区域名称为“开始区域名”+“至”+“结束区域名”。 2.可如c)修改区域名称。 2.2.3 配置计划 2.2.3.1 重新配置 删除配置文件所有已有关闭区域的信息。以便于重新配置。 2.2.3.2 增加配置 增加新的关闭区域配置。 a) 配置开始时间和结束时间。 b) 用户可在下拉列表框(或在图片单击鼠标左键)选择关闭区域或机位,亦可点击【导入时间段】按钮,复制已有的配置信息。 c) 点击【增加时间段】按钮,将当前配置的关闭区域作为新的时间段添加到配置文件。 d) 删除关闭区域:在工具栏的列表框选择删除区域并双击鼠标左键,或单击鼠标右键选择【删除该区域】,亦或在图形界面上双击鼠标右键删除关闭区域。 e) 点击【保存】按钮,保存当前配置的区域信息,并进入下一新增区域配置。 f) 点击【返回】按钮,完成该操作。 注:选择多块区域:单击鼠标左键选择开始区域,单击鼠标右键选择结束区域,则选择且界面显示开始区域至结束区域间所有区域,区域名称为“开始区域名”+“至”+“结束区域名”。 2.2.3.3 修改配置 修改已有的关闭区域的配置信息。 a) 点击【增加时间段】按钮,增加新的时间段,以便于在不同时间关闭其他区域。 b) 点击【删除时间段】按钮,删除已有的时间段。 c) 点击【保存】按钮,保存修改后的配置信息。 d) 点击【清空】按钮,清除当前显示的关闭区域。 e) 在工具栏的列表框选择区域,单击鼠标右键选择【修改区域名】,在标签“请输入新的区域名称”下方的下拉列表框输入新的区域名称,按【Enter】键,当列表框所选区域名改变时,此修改操作完成。 f) 点击【返回】按钮,完成该操作。 注:1.选择多块区域:单击鼠标左键选择开始区域,单击鼠标右键选择结束区域,则选择且界面显示开始区域至结束区域间所有区域,区域名称为“开始区域名”+“至”+“结束区域名”。 2.当选择时间段号后,可在图形界面上进行选择操作,否则鼠标无法选择关闭区域。 2.2.3.4 删除配置 在下拉列表框选择要删除第几天的区域,点击【删除】按钮,删除所选区域的相关配置信息。 2.2.3.5 查询配置 选择区域下拉列表框的数据,显示该天所有时间段的关闭区域。选择时间段下拉列表框的数据,显示该时间段的关闭区域,并显示开始时间及结束时间。 2.2.3.6 设置开始日期 选择日期作为“第1天”区域的开始日期,系统根据日期循环显示关闭区域。 2.2.4 全部区域 显示所有可以关闭的区域。 2.2.5 日期查询 选择“开始日期”以后的日期,显示该天的所有时间段的相关信息。 2.2.6 背景颜色 点击【背景颜色】按钮,可选择背景颜色。 2.2.7 打印 打印当前显示的关闭区域、相关信息和备注。 注:1.选择【纸张类型】及【方向】。 2.当图形界面下方表格的【关闭区域】列的信息过长时将无法完全打印,请适当修改区域名称或手动剪切部分信息至新的一行。 2.2.8 备注 编写“备注”的文本信息。 注:在“备注”框上,按住鼠标左键,“备注”随鼠标移动。 配置说明: Data文件夹包含Area_Show.xml、Areas_Config.xml、ColorRange.xml三个文档。 说明如下: Area_Show.xml为 CloseAreas.exe生成的配置文件,用于记录关闭区域的相关信息。 Areas_Config.xml记录位图“浦东机场(副本1).bmp”不同颜色所对应的区域名称。 例: <Area> <Name>1</Name> //区域名称为:(机位)1 <Color>ff0101e7</Color> //位图上的所对应的颜色名称。 <RGB>1,1,231</RGB> //位图上所对应颜色的RGB值。 </Area> 。。。。。。 <Area> <Name>A2(不含)-B1(不含)/B</Name> //区域名称:(跑道)A2(不含)-B1(不含)/B <Color>ff02ac04</Color> //位图上的所对应的颜色名称。 <RGB>2,172,4</RGB> //位图上所对应颜色的RGB值。 </Area> 。。。。。。 <Area> //多块区域构建组合区域 <Name>滑边</Name> //区域名称:(别名)滑边 <Color>ff6e7fff</Color> //同时显示多块区域时, <Color>ff6f80ff</Color> //将各区域对应的颜色名称写入此处。 <Color>ff8073ff</Color> <Color>ff7080ff</Color> 。。。。。。 </Area> ColorRange.xml为Write_Config.exe生成的配置文件,用于记录位图“浦东机场(副本1).bmp”不同颜色的范围。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值