ASP.NET Tutorial/XML/XMLDocument

Материал из .Net Framework эксперт
Версия от 14:57, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Append data to an XML file (VB.net)

   <source lang="csharp">

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

  sub Page_Load(Sender as Object, e as EventArgs)
     dim xmldoc as new XMLDocument()
        
     try
        xmldoc.Load(Server.MapPath("Data.xml"))
        dim eleBook as XmlElement = xmldoc.CreateElement("book")
        dim attStyle as XmlAttribute = xmldoc.CreateAttribute("style")
        eleBook.SetAttributeNode(attStyle)
        eleBook.SetAttribute("style", "hardcover")
        dim root as XmlElement = xmldoc.Item("bookstore")
        root.AppendChild(eleBook)
        
        xmldoc.Save(Server.MapPath("Data.xml"))
        output.Text = "Append operation successful"
     catch ex as Exception
        output.Text = "Error accessing XML file"
     end try
    
  end sub

</script> <html><body>

  <asp:Label id="output" runat="server" />

</body></html>

File: Data.xml <?xml version="1.0"?> <bookstore>

 <book genre="asdf">
   <title>asdf</title>
   <author>
     <first-name>asdf</first-name>
     <last-name>asdf</last-name>
   </author>
   <price>asdf</price>
 </book>
 <book genre="asdf">
   <title>asdf</title>
   <author>
     <first-name>asdf</first-name>
     <last-name>asdf</last-name>
   </author>
   <price>asdf</price>
 </book>
 <book genre="asdf">
   <title>asdf</title>
   <author>
     <first-name>asdf</first-name>
     <last-name>asdf</last-name>
   </author>
   <price>asdf</price>
 </book>

</bookstore></source>


Recursively load XML document with DOM

   <source lang="csharp">

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="XmlDOM" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">

   <title>Untitled Page</title>

</head> <body>

   <form id="form1" runat="server">
   <asp:Literal id="XmlText" runat="server"></asp:Literal> 
   </form>

</body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Xml; using System.Text; public partial class XmlDOM : System.Web.UI.Page {

   protected void Page_Load(object sender, EventArgs e)
   {
   string xmlFile = Server.MapPath("Data.xml");
   XmlDocument doc = new XmlDocument();
   doc.Load(xmlFile);
   XmlText.Text = GetChildNodesDescr(doc.ChildNodes, 0);
   }
 private string GetChildNodesDescr(XmlNodeList nodeList, int level)
 {
   string indent = "";
   for (int i = 0; i < level; i++)
     indent += "     ";
   StringBuilder str = new StringBuilder("");
   foreach (XmlNode node in nodeList)
   {
     switch (node.NodeType)
     {
       case XmlNodeType.XmlDeclaration:
         str.Append("XML Declaration: ");
         str.Append(node.Name);
         str.Append(" ");
         str.Append(node.Value);
         str.Append("
"); break; case XmlNodeType.Element: str.Append(indent); str.Append("Element: "); str.Append(node.Name); str.Append("
"); break; case XmlNodeType.Text: str.Append(indent); str.Append(" - Value: "); str.Append(node.Value); str.Append("
"); break; case XmlNodeType.rument: str.Append(indent); str.Append("Comment: "); str.Append(node.Value); str.Append("
"); break; } if (node.Attributes != null) { foreach (XmlAttribute attrib in node.Attributes) { str.Append(indent); str.Append(" - Attribute: "); str.Append(attrib.Name); str.Append(" Value: "); str.Append(attrib.Value); str.Append("
"); } } if (node.HasChildNodes) str.Append(GetChildNodesDescr(node.ChildNodes, level + 1)); } return str.ToString(); }

} File: Data.xml <?xml version="1.0"?> <DvdList>

  <DVD ID="1" Category="Category 1">
     <Title>title 1</Title>
     <Director>directory 2</Director>
     <Price>1</Price>
     <Starring>
        <Star>star 1</Star>
        <Star>star 2</Star>
     </Starring>
  </DVD>
  <DVD ID="2" Category="Category 2">
     <Title>title 2</Title>
     <Director>directory 2</Director>
     <Price>2</Price>
     <Starring>
        <Star>star 3</Star>
        <Star>star 4</Star>
     </Starring>
  </DVD>

</DvdList></source>