将图片读入到Dom中,并将其存为xml文件

dom|xml

1、需要命名空间
using System.Text;
using System.IO;
using System.Xml;
2、文件夹中存在001.jpg图片
3、生成一个docSave.xml文件

//******************
try
   {
    XmlDocument myXmlDoc = new XmlDocument();
    myXmlDoc.LoadXml("<picture><name>picture</name></picture>");

    XmlElement elem = myXmlDoc.CreateElement("image");

    // 打开图片文件,利用该图片构造一个文件流
    FileStream fs = new FileStream("../../001.jpg",FileMode.Open);
    // 使用文件流构造一个二进制读取器将基元数据读作二进制值
    BinaryReader br = new BinaryReader(fs);

    byte[] imageBuffer = new byte[br.BaseStream.Length];

    br.Read(imageBuffer,0,Convert.ToInt32(br.BaseStream.Length));

    string textString = System.Convert.ToBase64String(imageBuffer);

    fs.Close();
    br.Close();

    XmlText text = myXmlDoc.CreateTextNode(textString);

    myXmlDoc.DocumentElement.AppendChild(elem);
    myXmlDoc.DocumentElement.LastChild.AppendChild(text);

    myXmlDoc.Save("../../docSave.xml");

    MessageBox.Show("读写结束!");
catch(Exception ex)
   {
    MessageBox.Show(ex.ToString());
   }
//*************
//生成后的Xml文档
//******

<picture>
  <name>picture</name>
  <image>......</image>
</picture>

//***********
//测试上一程序
//***********

说明:读取docSave.xml中的image节点,将其存为图片格式002.jpg.

  try
   {
    int readByte = 0;
    int bytesToRead = 1044;
    XmlTextReader xmlTxtRd = new XmlTextReader("../../docSave.xml");
    FileStream fs = new FileStream("../../002.jpg",FileMode.Create);
    BinaryWriter bw = new BinaryWriter(fs);

    byte[] base64buffer = new byte[bytesToRead];
    while(xmlTxtRd.Read())
    {
     if (xmlTxtRd.NodeType == XmlNodeType.Element && xmlTxtRd.Name == "image")
     {
      do
      {
       readByte = xmlTxtRd.ReadBase64(base64buffer,0,bytesToRead);
       bw.Write(base64buffer,0,readByte);
      }
      while( bytesToRead<= readByte);
     }
    }

    bw.Flush();
    bw.Close();
    fs.Close();

    xmlTxtRd.Close();
    MessageBox.Show("读写结束!");
   }
  catch(Exception ex)
   {
    MessageBox.Show(ex.ToString());
   }

 

 

时间: 2024-08-31 10:40:51

将图片读入到Dom中,并将其存为xml文件的相关文章

ASP.net在gridview中删除数据时同时更新xml文件

asp.net|xml|数据 为了减少对数据库的访问,前台页面通常只对xml文件进行读取,但是更新数据库的时候需要同时更新xml文件,添加好办,但是删除的时候呢,下面的程序在gridview中删除数据的同时删除xml文件中对应的节点.xml文件的每个节点是一个图片新闻,包括图片和新闻页面的本地存储路径.   using System;using System.Collections;using System.ComponentModel;using System.Data;using Syste

vb excel xml-vb编程,excel单元格中内容怎么筛选遍历到xml文件中?

问题描述 vb编程,excel单元格中内容怎么筛选遍历到xml文件中? 如excel单元格内容: 衣服 1.女装 a.裤子 b.毛衣 c.鞋子 2.男装 a.裤子 b.毛衣 电器 1.冰箱 a.x型号 b.y型号 2.电视机 a.长虹 b.HTC c.惠普 3.空调 a.格力 需要把大标题与1.2.3标题遍历显示到xml文件中,把abc的内容不显示,请问各位前辈,这个怎么实现,谢谢了!

unity局域网中客户端下载服务端的xml文件

问题描述 unity局域网中客户端下载服务端的xml文件 unity局域网中客户端怎样实现下载服务端的xml文件.顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

布局-在安卓开发中,如何在一个Activity中引用另一个Activity的XML文件?

问题描述 在安卓开发中,如何在一个Activity中引用另一个Activity的XML文件? 如题,我想在Activity1中通过点击Button来显示Activity2中的布局,要如何做到?求高手帮忙,谢谢大家 解决方案 在Android中常通过Intent进行Activity间的跳转.数据传递等,可在Button的onClick事件中通过Intent启动Activity2. 通过Intent进行Activity跳转,如下: Intent intent = new Intent(this, A

安卓开发-android项目中一个Activity一般配一个xml文件,什么情况下配多个xml文件呢

问题描述 android项目中一个Activity一般配一个xml文件,什么情况下配多个xml文件呢 android项目中一个Activity一般配一个xml文件,什么情况下配多个xml文件呢 有没有Activity不需要xml文件的情况呢 解决方案 多个xml一般是需要适配不同大小的屏幕,安卓会根据屏幕大小自动加载不同size的屏幕的xml,安卓开发是mvc结构,activity一定需要一个view,通常是需要xml做view,但是也可以自定义一个view然后activity加载这个view

安卓开发中粘贴进项目里的xml文件的R.id里的属性报错怎么解决啊?新手,求助。。

问题描述 安卓开发中粘贴进项目里的xml文件的R.id里的属性报错怎么解决啊?新手,求助.. mContent = (EditText) findViewById(R.id.et_note_content);像这样的代码,R.java中能找到et_note_ content但就是报错,et_note_content cannot be resolved or is not a field.怎么解决啊,新手求助 解决方案 注意一下引入的R是不是你工程的R,看一下import

IBatisNet中批量生成对应表的xml文件,有没有什么好用的工具

问题描述 如题,IBatisNet中批量生成对应表的xml文件,有没有什么好用的工具? 解决方案 解决方案二:没有人在吗????

JSP从数据库中导出数据并输出生成XML文件

JSP从数据库教程中导出数据并输出生成XML文件 /* 数据库结构 create table userTable01(     user_id int(4) NOT NULL primary key auto_increment,     user_name varchar(40),     user_password varchar(40),     user_true_name varchar(40),     user_age int, user_sex varchar(2),     u

Android中使用pull解析器操作xml文件的解决办法_Android

一.使用Pull解析器读取XML文件 除了可以使用SAX或DOM解析XML文件之外,大家也可以使用Android内置的Pull解析器解析XML文件. Pull解析器是一个开源的java项目,既可以用于android,也可以用于JavaEE.如果用在javaEE需要把其jar文件放入类路径中,因为Android已经集成进了Pull解析器,所以无需添加任何jar文件.android系统本身使用到的各种xml文件,其内部也是采用Pull解析器进行解析的. Pull解析器的运行方式与SAX 解析器相似.