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

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

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

Load XML from String and write to file

   <source lang="csharp">

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

   void Page_Load(object sender, EventArgs e)
   {
       XmlDocument empDoc = new XmlDocument();
       Response.ContentType = "text/xml";
       try
       {
           //Load the XML from a String
           empDoc.LoadXml("<employees>" +
                       "<employee id="1">" +    
                       "<name><firstName>First Name</firstName>" + 
                       "<lastName>Last Name</lastName>" +                       
                       "</name><city>City</city>" +
                       "<state>WA</state><zipCode>99999</zipCode>" +
           "</employee></employees>");    
           //Save the XML data onto a file                    
           empDoc.Save(MapPath("EmployeesNew.xml"));
           Response.Write(empDoc.InnerXml);
       }
       catch (XmlException xmlEx)
       {
           Response.Write("XmlException: " + xmlEx.Message);
       }
       catch (Exception ex)
       {
           Response.Write("Exception: " + ex.Message);
       }        
   }   

</script>


      </source>
   
  


Save updated XML data set to new XML file

   <source lang="csharp">

<%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <script language="VB" runat="server">

 Sub Page_Load(Sender As Object, E As EventArgs)
   Dim objDataSet    As New DataSet()
   " read in the XML file
   objDataSet.ReadXml(Server.MapPath("NewEmployees.xml"))
   " show it in a grid    
   dgEmployees1.DataSource = objDataSet.Tables(0).DefaultView
   dgEmployees1.DataBind()
   " modify a row
   objDataSet.Tables("employee").Rows(0).Item("firstName") = "Bob"
   objDataSet.Tables("employee").Rows(0).Item("lastName") = "Dylan"
   " add a new row to the table
   Dim objTable  As DataTable
   Dim objNewRow As DataRow
 
   objTable = objDataSet.Tables("employee")
   objNewRow = objTable.NewRow()
   objNewRow.Item("firstName") = "Norman"
   objNewRow.Item("lastName") = "Blake"
   objTable.Rows.Add(objNewRow)
   " save it to a new file
   objDataSet.WriteXml(Server.MapPath("Employees2.xml"))
   
   " read in the new file
   Dim objDataSet2    As New DataSet()
   objDataSet2.ReadXml(Server.MapPath("Employees2.xml"))
   " show it in another grid
   dgEmployees2.DataSource = objDataSet2.Tables(0).DefaultView
   dgEmployees2.DataBind()
 End Sub

</script> <html>

<body>
<asp:DataGrid id="dgEmployees1" runat="server" /> <asp:DataGrid id="dgEmployees2" runat="server" />
</body>

</html>

<%-- <?xml version="1.0"?> <employees>

 <employee id="1">    
     <firstName>Nancy</firstName>
     <lastName>Lee</lastName> 
   <city>Seattle</city>
   <state>WA</state>
   <zipCode>98122</zipCode>   
 </employee>
 <employee id="2">    
     <firstName>Jason</firstName>
     <lastName>Wang</lastName>
   <city>Vancouver</city>
   <state>WA</state>
   <zipCode>98123</zipCode>   
 </employee> 

</employees> --%>

      </source>
   
  


Save XML data to String Writer

   <source lang="csharp">

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

   void Page_Load(object sender, EventArgs e)
   {    
       XmlDocument empDoc = new XmlDocument();        
       try
       {
           StringWriter writer = new StringWriter();            
           //Load the XML from a String
           empDoc.LoadXml("<?xml version="1.0"?><employees>" +
                       "<employee id="1">" +    
                       "<firstName>first name</firstName>" + 
                       "<lastName>last name</lastName>" +                       
                       "<city>city</city>" +
                       "<state>state</state><zipCode>99999</zipCode>" +
           "</employee></employees>");    
           //Save the XML data onto a file                    
           empDoc.Save(writer);
           txtResult.Text = writer.ToString();
           Response.Write(writer.ToString());
       }
       catch (XmlException xmlEx)
       {
           Response.Write("XmlException: " + xmlEx.Message);
       }
       catch (Exception ex)
       {
           Response.Write("Exception: " + ex.Message);
       }        
   }   

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

   <title>Saving an XML Document to a StringWriter Object</title>

</head> <body>

   <form id="form1" runat="server">
       <asp:TextBox ID="txtResult" runat="server" Width="383px" Height="224px"></asp:TextBox>
       
   </form>

</body> </html>


      </source>
   
  


Write XML File with namespace

   <source lang="csharp">

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

   void Page_Load(object sender, EventArgs e)
   {
       string xmlFilePath = MapPath("EmployeesNew.xml");
       //string xmlFilePath = @"C:\Data\Employees.xml";
       try
       {
           using (XmlWriter writer = XmlWriter.Create(xmlFilePath))
           {
               writer.WriteStartDocument(false);
               writer.WriteStartElement("employees");
               //Write the Namespace prefix for the root element
               writer.WriteAttributeString("xmlns", "emp", null, "urn:employees-nfex");
               writer.WriteStartElement("employee", "urn:employees-nfex");
               /* You can also use this approach to declare the namespace
               string prefix = writer.LookupPrefix("urn:employees-nfex");
               writer.WriteStartElement(prefix, "employee", null);
               */
                   writer.WriteAttributeString("id", "1");
                       writer.WriteStartElement("name", "urn:employees-nfex");
                           writer.WriteElementString("firstName", "urn:employees-nfex", "Nancy");
                           writer.WriteElementString("lastName", "urn:employees-nfex", "lastName");
                       writer.WriteEndElement();
                       writer.WriteElementString("city", "urn:employees-nfex", "Seattle");
                       writer.WriteElementString("state", "urn:employees-nfex", "WA");
                       writer.WriteElementString("zipCode", "urn:employees-nfex", "98122");
                   writer.WriteEndElement();
               writer.WriteEndElement();
               writer.WriteEndDocument();
               //Flush the object and write the XML data to the file
               writer.Flush();
               lblResult.Text = "File is written successfully";
           }
       }
       catch (Exception ex)
       {
           lblResult.Text = "An Exception occurred: " + ex.Message;
       }
   }

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

   <title>Writing XML File</title>

</head> <body>

   <form id="form1" runat="server">
       <asp:label id="lblResult" runat="server" />
   </form>

</body> </html>

      </source>
   
  


XML File write: element, comments

   <source lang="csharp">

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

   void Page_Load(object sender, EventArgs e)
   {   
       //string xmlFilePath = @"C:\Data\Employees.xml";            
       string xmlFilePath = MapPath("EmployeesNew.xml");
       try {
           using (XmlWriter writer = XmlWriter.Create(xmlFilePath))
           {
               writer.WriteStartDocument(false);
               writer.WriteComment("This XML file represents the details of an employee");
               //Start with the root element
               writer.WriteStartElement("employees");                    
                   writer.WriteStartElement("employee");
                   writer.WriteAttributeString("id", "1");
                       writer.WriteStartElement("name");
                           writer.WriteElementString("firstName", "Nancy");
                           writer.WriteElementString("lastName", "Lee");
                       writer.WriteEndElement();
                       writer.WriteElementString("city", "Seattle");
                       writer.WriteElementString("state", "WA");
                       writer.WriteElementString("zipCode", "98122");                                    
                   writer.WriteEndElement();
               writer.WriteEndElement();
               writer.WriteEndDocument();
               //flush the object and write the XML data to the file
               writer.Flush();
               lblResult.Text = "File is written successfully";
           }
       }       
       catch (Exception ex)
       {
           lblResult.Text = "An Exception occurred: " + ex.Message;
       }        
   }

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

   <title>Writing XML File</title>

</head> <body>

   <form id="form1" runat="server">
       <asp:label id="lblResult" runat="server" />
   </form>

</body> </html>

      </source>
   
  


XML file write: Indent, indent char, and Omit Xml Declaration

   <source lang="csharp">

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

   void Page_Load(object sender, EventArgs e)
   {        
       string xmlFilePath = MapPath("EmployeesNew.xml");            
       //string xmlFilePath = @"C:\Data\Employees.xml";            
       try
       {
           XmlWriterSettings settings = new XmlWriterSettings();
           settings.Indent = true;            
           settings.ConformanceLevel = ConformanceLevel.Auto;
           settings.IndentChars = "\t";
           settings.OmitXmlDeclaration = false;
           using (XmlWriter writer = XmlWriter.Create(xmlFilePath, settings))
           {
               writer.WriteStartDocument(false);                
               writer.WriteStartElement("employees");                    
                   writer.WriteStartElement("employee");
                   writer.WriteAttributeString("id", "1");
                       writer.WriteStartElement("name");
                           writer.WriteElementString("firstName", "Nancy");
                           writer.WriteElementString("lastName", "Lee");
                       writer.WriteEndElement();
                       writer.WriteElementString("city", "Seattle");
                       writer.WriteElementString("state", "WA");
                       writer.WriteElementString("zipCode", "98122");                                    
                   writer.WriteEndElement();
               writer.WriteEndElement();
               writer.WriteEndDocument();
               //Flush the object and write the XML data to the file
               writer.Flush();
               lblResult.Text = "File is written successfully";
           }
       }       
       catch (Exception ex)
       {
           lblResult.Text = "An Exception occurred: " + ex.Message;
       }        
   }

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

   <title>Writing XML File with XmlWriterSettings</title>

</head> <body>

   <form id="form1" runat="server">
       <asp:label id="lblResult" runat="server" />
   </form>

</body> </html>

      </source>