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();
}

1337

被折叠的 条评论
为什么被折叠?



