ASP.Net/XML/Form Save — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
м (1 версия)
 
(нет различий)

Текущая версия на 14:51, 26 мая 2010

Save form data to XML file

   <source lang="csharp">

<%@ Page Language="C#" %> <%@ Import Namespace="System.Xml" %> <script runat="server">

   protected void btnSave_Click(object sender, EventArgs e)
   {
       string xmlPath = MapPath("Books.xml");
       XmlDocument doc = new XmlDocument();
       //Check if the file already exists or not
       if (System.IO.File.Exists(xmlPath))
       {
           doc.Load(xmlPath);
           XmlNode bookNode = CreateBookNode(doc);
           //Get reference to the book node and append the book node to it
           XmlNode bookStoreNode = doc.SelectSingleNode("bookstore");
           bookStoreNode.AppendChild(bookNode);
           lblResult.Text = "XML Document has been successfully updated";
       }
       else
       {            
           XmlNode declarationNode = doc.CreateXmlDeclaration("1.0", "", "");
           doc.AppendChild(declarationNode);
           XmlNode comment = doc.CreateComment("This file represents a fragment of a book store inventory database");
           doc.AppendChild(comment);            
           XmlNode bookstoreNode = doc.CreateElement("bookstore");
           XmlNode bookNode = CreateBookNode(doc);                        
           //Append the book node to the bookstore node            
           bookstoreNode.AppendChild(bookNode);
           //Append the bookstore node to the document
           doc.AppendChild(bookstoreNode);
           lblResult.Text = "XML Document has been successfully created";
       }
       doc.Save(xmlPath);
   }
   XmlNode CreateBookNode(XmlDocument doc)
   {
       XmlNode bookNode = doc.CreateElement("book");
       //Add the genre attribute to the book node
       XmlAttribute genreAttribute = doc.CreateAttribute("genre");
       genreAttribute.Value = txtGenre.Text;        
       bookNode.Attributes.Append(genreAttribute);
       //Add all the children of the book node            
       XmlNode titleNode = doc.CreateElement("title");
       titleNode.InnerText = txtTitle.Text;
       bookNode.AppendChild(titleNode);
       //Create the author node and its children
       XmlNode authorNode = doc.CreateElement("author");
       XmlNode firstNameNode = doc.CreateElement("first-name");
       firstNameNode.InnerText = txtFirstName.Text;
       authorNode.AppendChild(firstNameNode);
       XmlNode lastNameNode = doc.CreateElement("last-name");
       lastNameNode.InnerText = txtLastName.Text;
       authorNode.AppendChild(lastNameNode);
       bookNode.AppendChild(authorNode);
       XmlNode priceNode = doc.CreateElement("price");
       priceNode.InnerText = txtPrice.Text;
       bookNode.AppendChild(priceNode);
       return bookNode;
   }
   

</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">

   <title>Creating an XmlDocument</title>

</head> <body>

   <form id="form1" runat="server">
                   Book Details:
                   Genre:
                   <asp:TextBox ID="txtGenre" runat="server" Width="201px"></asp:TextBox>
                   Title:
                   <asp:TextBox ID="txtTitle" runat="server" Width="201px"></asp:TextBox>
                   First Name:
                   <asp:TextBox ID="txtFirstName" runat="server" Width="201px"></asp:TextBox>
                   Last Name:
                   <asp:TextBox ID="txtLastName" runat="server" Width="201px"></asp:TextBox>
                   Price:
                   <asp:TextBox ID="txtPrice" runat="server" Width="201px"></asp:TextBox>
                   <asp:Button Text="Save" runat="server" ID="btnSave" Width="95px" OnClick="btnSave_Click"/>
                   <asp:Label Text="Save" runat="server" ID="lblResult" Width="295px"/>
   </form>

</body> </html>

      </source>