XML操作方法

 1: 利用DataSet对XML进行读写的操作,对XML增加一行记录可用DataRow来新增,最后只需要调用ds.Tables[0].Rows的ADD方法!
        DataSet ds = new DataSet("myDs");
        ds.ReadXml(Server.MapPath(@"./XMLFile.xml"));
        DataRow dr = ds.Tables[0].NewRow();
        dr["name"] = this.TextBox1.Text.Trim();
        dr["city"] = this.TextBox2.Text.Trim();
        dr["Email"] = this.TextBox3.Text.Trim();
        dr["liuyan"] = this.TextBox4.Text.Trim();
        ds.Tables[0].Rows.Add(dr);
        ds.WriteXml(Server.MapPath(@"./XMLFile.xml"));
        Response.Redirect("show.aspx");

2: XML绑定到GridView的操作,新建DataSet,读取XML,将GridView的DataSource设置为新的DataSet,并绑定!
        DataSet ds = new DataSet("myDataSet");
        ds.ReadXml(Server.MapPath(@"~/XMLFile.xml"));  
        GridView1.DataSource=ds;      //注意这种用法:  ds.Tables["Image"].DefaultView;
        GridView1.DataBind();

3:利用XmlElement将XML中的数据读取到列表框中
        XmlDocument doc = new XmlDocument();
        ArrayList NodeValues = new ArrayList();
        doc.Load(Server.MapPath("XMLFile2.xml"));
        XmlNode root = doc.DocumentElement;
        foreach (XmlNode personElement in root.ChildNodes)
        {
            NodeValues.Add(personElement.FirstChild.Value);
        }
        ListBox1.DataSource = NodeValues;
        ListBox1.DataBind();

4:写XML标记及数据,保存为XML文件.创建文件流,创建XmlTextWriter并设置Formatting属性
        string filename = TextBox1.Text;
        System.IO.FileStream myFileStream = new System.IO.FileStream(filename, System.IO.FileMode.Create);
        XmlTextWriter myXmlTextWriter = new XmlTextWriter(myFileStream, System.Text.Encoding.Unicode);
        myXmlTextWriter.Formatting = Formatting.Indented;

        try
        {
            WriteXMLbyWmlWriter(myXmlTextWriter, "SWFG", 88.88, 0.55, 876666);
            myXmlTextWriter.Close();
            Response.Write("写入成功!");
        }
        catch
        {
            Response.Write("请检查路径是否正确,是否有写入权限!");
        }
   
    private void WriteXMLbyWmlWriter(XmlWriter writer, string symbol, double price, double change, long volume)
    {
        writer.WriteStartElement("stock");
        writer.WriteAttributeString("Symbol", symbol);
        writer.WriteElementString("price",XmlConvert.ToString(price));
        writer.WriteElementString("change",XmlConvert.ToString(change));
        writer.WriteElementString("volume", XmlConvert.ToString(volume));
        writer.WriteEndElement();
    }

5:对XML数据的查询,删除,添加,修改等操作!
 (1)将XML中的一列写到DropDownList中,xdoc.GetElementsByTagName方法重要
        XmlDocument xdoc = new XmlDocument();
        xdoc.Load(Server.MapPath(@"~/XMLFile.xml"));
        XmlNodeList elemlist = xdoc.GetElementsByTagName("name");
        DropDownList1.Items.Clear();
       
        for (int i = 0; i<elemlist.Count; i++)
        {
            DropDownList1.Items.Add(elemlist[i].InnerXml);
        }
 (2)查询SelectSingleNode("//community[name='" + DropDownList1.SelectedItem.Text + "']") 重要
         xdoc.SelectSingleNode("//community[name='" + DropDownList1.SelectedItem.Text + "']").ChildNodes.Item(2).InnerText
 (3)修改
         xdoc.Save(Server.MapPath(@"~/XMLFile.xml"));
 (4)删除
 通过父节点的RemoveChild方法,要注意强制类型转换
 要注意XmlElement xe=(XmlElement)xdoc.SelectSingleNode("//community[name='" +   DropDownList1.SelectedItem.Text + "']");
 (5)插入.通过根节点,次节点的AppendChild方法
 XmlDocument xdoc = new XmlDocument();
        xdoc.Load(Server.MapPath(@"~/XMLFile.xml"));
        XmlNode root = xdoc.SelectSingleNode("shili");
        XmlElement xele = xdoc.CreateElement("community");

        XmlElement xelesub1 = xdoc.CreateElement("name");
        xelesub1.InnerText = txtName.Text;
        xele.AppendChild(xelesub1);
        XmlElement xelesub2 = xdoc.CreateElement("city");
        xelesub2.InnerText = txtCity.Text;
        xele.AppendChild(xelesub2);
        XmlElement xelesub3 = xdoc.CreateElement("Email");
        xelesub3.InnerText = txtEmail.Text;
        xele.AppendChild(xelesub3);
        XmlElement xelesub4 = xdoc.CreateElement("liuyan");
        xelesub4.InnerText = txtLiuyan.Text;
        xele.AppendChild(xelesub4);

        root.AppendChild(xele);
        xdoc.Save(Server.MapPath(@"~/XMLFile.xml"));
        bind();
6: 将图片文本化存储在XML文件中,并从XML中读取图片
 Byte[] FileByteArray = new Byte[FileLength];
 Convert.ToBase64String(FileByteArray);

 (1)读取上传文件的全路径名称,类型,大小,文件名以及将图片数据写入流中
        string strFilePathName = FileUpload1.PostedFile.FileName;
        string strFileName = Path.GetFileName(strFilePathName);
        int FileLength = FileUpload1.PostedFile.ContentLength;
            Byte[] FileByteArray = new Byte[FileLength];
            Stream StreamObject = FileUpload1.PostedFile.InputStream;
            StreamObject.Read(FileByteArray, 0, FileLength);
 (2)显示图片
        int ImgID = Convert.ToInt32(Request.QueryString["ImageID"]);
        string FileName = Server.MapPath("~//WriteXml.xml");
        XmlDocument xdoc = new XmlDocument();
        xdoc.Load(FileName);
        XmlNodeList node = xdoc.SelectSingleNode("//Image[ImageID='" + ImgID.ToString() + "']").ChildNodes;
        if (node != null)
        {
            string strType = node.Item(1).InnerText;
            string strData = node.Item(4).InnerText;
            int nSize = int.Parse(node.Item(2).InnerText);

            Response.ContentType = strType;
            Response.OutputStream.Write(Convert.FromBase64String(strData), 0, nSize);
            Response.End();
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值