本文共 9465 字,大约阅读时间需要 31 分钟。
XML声明
<?xml version="1.0" encoding="GB2312" standalone="no"?> <标记 属性名="属性取值"…>数据内容</标记>DataSet方法DataSet.ReadXml(string strFileName);DataSet.WriteXml(string strFileName);dbGuest.xsddbGuest.xml<?xml version="1.0" standalone="yes"?><dbGuest xmlns=""> <User> <Name>gloomyboyo</Name> <City>fuzhou</City> <Email>gloomyboyo@126.com</Email> <Message>Hello!</Message> <STime>2006-8-5 10:51:14</STime> </User></dbGuest> private void btnSubmit_Click(object sender, System.EventArgs e) { DataSet ds = new DataSet("myDs"); //从XML中读取数据 ds.ReadXml(Server.MapPath(@"./db/dbGuest.xml")); //以下为添加记录 DataRow dr = ds.Tables[0].NewRow(); dr["Name"] = tbName.Text.Trim(); dr["City"] = tbCity.Text.Trim(); dr["Email"] = tbEmail.Text.Trim(); dr["Message"] = tbComments.Text.Trim(); dr["STime"] = DateTime.Now.ToString(); ds.Tables[0].Rows.Add(dr); //写回XML ds.WriteXml(Server.MapPath(".//db//dbGuest.xml")); Response.Redirect("view.aspx"); } private void Page_Load(object sender, System.EventArgs e) { //显示数据 DataSet ds = new DataSet(); ds.ReadXml(Server.MapPath(@"./db/dbGuest.xml")); dgShow.DataSource = ds.Tables[0].DefaultView; dgShow.DataBind(); }
XMl文件的读写
foreach(XmlNode personElement in root.ChildNodes)XmlTextWriter的使用people.xml<?xml version="1.0" encoding="utf-8" ?> <PEOPLE> <PERSON>张三</PERSON> <PERSON>李四</PERSON> </PEOPLE> private void LoadXMLButton_Click(object sender, System.EventArgs e) { // 创建XmlDocument类的实例 XmlDocument doc = new XmlDocument(); ArrayList NodeValues = new ArrayList(); // 把people.xml文件读入内存,形成一个DOM结构 doc.Load( Server.MapPath("people.xml") ); XmlNode root = doc.DocumentElement; foreach( XmlNode personElement in root.ChildNodes ) NodeValues.Add(personElement.FirstChild.Value); XMLNodeListBox.DataSource = NodeValues; XMLNodeListBox.DataBind(); } static void WriteXMLbyXmlWriter(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(); } private void CreateXMLFileButton_Click(object sender, System.EventArgs e) { // 创建一个表示所要生成的XML文件路径的字符串。如果该路径指向NTFS分区,则需要相关的访问权限。 string filename = XMLFilePathTextBox.Text; // 创建一个写入XML数据的文件流 System.IO.FileStream myFileStream = new System.IO.FileStream(filename, System.IO.FileMode.Create); // 使用文件流对象创建一个XmlTextWriter对象 XmlTextWriter myXmlWriter = new XmlTextWriter(myFileStream, System.Text.Encoding.Unicode); myXmlWriter.Formatting = Formatting.Indented; try { // 使用WriteXMLbyXmlWriter方法把数据写入XmlTextWriter对象中 WriteXMLbyXmlWriter(myXmlWriter, "MSFT", 74.5, 5.5, 49020000); // 通过Close方法的调用,XmlTextWriter对象的数据最终写入XML文件 myXmlWriter.Close(); Page.Response.Write("生成XML文档成功!"); } catch { Page.Response.Write("生成XML文档失败!请检查路径是否正确,以及是否有写入权限。"); } }
Xml的文件操作
XmlDocument的使用:.Load.SelectSingleNode.CreateElement.SavedbGuest.xml<?xml version="1.0" standalone="yes"?><dbGuest> <User> </User> <User> <Name>gloomyboyo</Name> <City>fuzhou</City> <Email>gloomyboyo@126.com</Email> </User></dbGuest> private void Page_Load(object sender, System.EventArgs e) { if(!IsPostBack) Bind(); } private void Bind() { DataSet ds = new DataSet(); ds.ReadXml(Server.MapPath(".//db//dbGuest.xml")); dgShow.DataSource = ds.Tables[0].DefaultView; dgShow.DataBind(); XmlDocument doc = new XmlDocument(); doc.Load(Server.MapPath(".//db//dbGuest.xml")); XmlNodeList elemList = doc.GetElementsByTagName("Name"); ddlName.Items.Clear(); for(int i=0;i<elemList.Count;i++) ddlName.Items.Add(elemList[i].InnerXml); } private void btnQuery_Click(object sender, System.EventArgs e) { //查询 XmlDocument doc = new XmlDocument(); doc.Load(Server.MapPath(".//db//dbGuest.xml")); lbEmail.Text = doc.SelectSingleNode("//User[Name='"+ddlName.SelectedItem.Text+"']").ChildNodes.Item(2).InnerText; } private void btnDelete_Click(object sender, System.EventArgs e) { //删除 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(Server.MapPath(".//db//dbGuest.xml")); XmlNodeList xnl=xmlDoc.SelectSingleNode("dbGuest").ChildNodes; foreach(XmlNode xn in xnl) { XmlElement xe=(XmlElement)xn; XmlNodeList node = xe.GetElementsByTagName("Name"); if(node.Count>0) { if(node[0].InnerText==ddlName.SelectedItem.Text) xe.RemoveAll();//删除该节点的全部内容 break; } } xmlDoc.Save(Server.MapPath(".//db//dbGuest.xml")); Bind(); } private void btnAdd_Click(object sender, System.EventArgs e) { //添加 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(Server.MapPath(".//db//dbGuest.xml")); XmlNode root=xmlDoc.SelectSingleNode("dbGuest");//查找<dbGuest> XmlElement xe1=xmlDoc.CreateElement("User");//创建一个<User>节点 XmlElement xesub1=xmlDoc.CreateElement("Name"); xesub1.InnerText="Guset";//设置文本节点 xe1.AppendChild(xesub1);//添加到<User>节点中 XmlElement xesub2=xmlDoc.CreateElement("City"); xesub2.InnerText="上海"; xe1.AppendChild(xesub2); XmlElement xesub3=xmlDoc.CreateElement("Email"); xesub3.InnerText=""; xe1.AppendChild(xesub3); root.AppendChild(xe1);//添加到<dbGuest>节点中 xmlDoc.Save(Server.MapPath(".//db//dbGuest.xml")); Bind(); } private void btnChange_Click(object sender, System.EventArgs e) { //查询 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(Server.MapPath(".//db//dbGuest.xml")); XmlNodeList nodeList=xmlDoc.SelectSingleNode("dbGuest").ChildNodes;//获取dbGuest节点的所有子节点 foreach(XmlNode xn in nodeList)//遍历所有子节点 { XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型 XmlNodeList node = xe.GetElementsByTagName("Name"); if(node.Count>0) { if(node[0].InnerText==ddlName.SelectedItem.Text) { XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点 foreach(XmlNode xn1 in nls)//遍历 { XmlElement xe2=(XmlElement)xn1;//转换类型 if(xe2.Name=="Email")//如果找到 { xe2.InnerText=tbNewMail.Text;//则修改 break;//找到退出来就可以了 } } break; } } } xmlDoc.Save(Server.MapPath(".//db//dbGuest.xml")); Bind(); }XMl文件验证
private void Page_Load(object sender, System.EventArgs e) { FileStream stream = new FileStream(Server.MapPath("people.xml"), FileMode.Open); //创建XmlValidatingReader类的对象 XmlValidatingReader vr = new XmlValidatingReader(stream, XmlNodeType.Element, null); //加载XML架构文档 vr.Schemas.Add(null, Server.MapPath("people.xsd")); //说明验证的方式是根据XML架构 vr.ValidationType = ValidationType.Schema; vr.ValidationEventHandler += new ValidationEventHandler(ValidationHandler); //对文档进行验证 while(vr.Read()); //显示验证过程完成 Page.Response.Write("<b>Validation finished!<b>"); //关闭打开的文件 stream.Close(); } private void ValidationHandler(object sender, ValidationEventArgs args) { //显示验证失败的消息 Page.Response.Write("<b>Validation error: </b>" + args.Message + "<p>"); }Xml传送图片
XmlDocument类的使用Byte[] bt=new Byte[size];String strData;把字节组转换为字符串:-String str=Convert.ToBase64String(bt);把字符串转换为字符串-bt=Convert.FromBase64String(strData); private void btnUpload_Click(object sender, System.EventArgs e) { //得到用户要上传的文件名 string strFilePathName = loFile.PostedFile.FileName; string strFileName = Path.GetFileName(strFilePathName); int FileLength = loFile.PostedFile.ContentLength; if(FileLength<=0) return; try { Byte[] FileByteArray = new Byte[FileLength]; //图象文件临时储存Byte数组 Stream StreamObject = loFile.PostedFile.InputStream; //建立数据流对像 //读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度 StreamObject.Read(FileByteArray,0,FileLength); string fileName = Server.MapPath(".//WriteXml.xml"); //要打开的文件 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(fileName); XmlNode root=xmlDoc.SelectSingleNode("dbImage");//查找<dbGuest> XmlNodeList xnl=xmlDoc.SelectSingleNode("dbImage").ChildNodes; int nIndex = xnl.Count; //以下添加新结点 XmlElement xe1=xmlDoc.CreateElement("Image");//创建一个<User>节点 XmlElement xesub1=xmlDoc.CreateElement("ImageID"); xesub1.InnerText=nIndex.ToString();//设置文本节点 xe1.AppendChild(xesub1);//添加到<User>节点中 XmlElement xesub2=xmlDoc.CreateElement("ImageContentType"); xesub2.InnerText=loFile.PostedFile.ContentType; xe1.AppendChild(xesub2); XmlElement xesub3=xmlDoc.CreateElement("ImageSize"); xesub3.InnerText=FileLength.ToString(); xe1.AppendChild(xesub3); XmlElement xesub4=xmlDoc.CreateElement("ImageDescription"); xesub4.InnerText=tbDescription.Text; xe1.AppendChild(xesub4); XmlElement xesub5=xmlDoc.CreateElement("ImageData"); xesub5.InnerText= Convert.ToBase64String(FileByteArray); xe1.AppendChild(xesub5); root.AppendChild(xe1);//添加到<dbGuest>节点中 xmlDoc.Save(fileName); Response.Redirect("ShowAllImg.aspx"); } catch { } } private void Page_Load(object sender, System.EventArgs e) { string fileName = Server.MapPath("./WriteXml.xml"); //要打开的文件 DataSet ds = new DataSet(); ds.ReadXml(fileName); dgShow.DataSource = ds.Tables["image"].DefaultView; dgShow.DataBind(); } private void Page_Load(object sender, System.EventArgs e) { int ImgID = Convert.ToInt32(Request.QueryString["ID"]); //ID为图片ID //建立数据库链接 string fileName = Server.MapPath(".//WriteXml.xml"); //要打开的文件 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(fileName); XmlNodeList node = xmlDoc.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(); //也可以保存为图像 // FileStream fs = new FileStream(@"C:/aa.BMP", FileMode.OpenOrCreate, FileAccess.Write); // fs.Write((Convert.FromBase64String(strData), 0,nSize); // fs.Close(); } }转载地址:https://blog.csdn.net/lisong58420/article/details/2302816 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!