ASP.NET Tutorial/XML/XMLNodeType — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 18:30, 26 мая 2010
Check XMLNodeType (VB.net)
<source lang="csharp">
<%@ Import Namespace="System.Xml" %> <script language="VB" runat=server>
sub Page_Load(Sender as Object, e as EventArgs) dim reader as XMLTextReader dim i as integer dim curPrice as Decimal try reader = new XMLTextReader(Server.MapPath("Data.xml")) While reader.Read() Select Case reader.NodeType Case XMLNodeType.Element if reader.HasAttributes then for i = 0 to reader.AttributeCount - 1 Response.Write(reader.GetAttribute(i) & " ") next Response.Write("
") end if Case XMLNodeType.Text Response.Write(reader.Value & "
") End Select End While catch ex as Exception Response.Write("Error accessing XML file") finally reader.close end try end sub
</script> <html> <body> </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>
Get Node by name
<source lang="csharp">
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Search" %> <!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 Search : 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); StringBuilder str = new StringBuilder(); XmlNodeList nodes = doc.GetElementsByTagName("Title"); foreach (XmlNode node in nodes) { str.Append("Found: "); string name = node.ChildNodes[0].Value; str.Append(name); str.Append("
"); if (name == "star 1") { XmlNode parent = node.ParentNode; XmlNodeList childNodes = ((XmlElement)parent).GetElementsByTagName("Star"); foreach (XmlNode childNode in childNodes) { str.Append("Found Star: "); str.Append(childNode.ChildNodes[0].Value); str.Append("
"); } } } XmlText.Text = 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>
</DvdList></source>
Read XML by node type
<source lang="csharp">
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="WriteAndReadXml" %> <!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 WriteAndReadXml : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) { string xmlFile = Server.MapPath("Data.xml"); XmlTextReader reader = new XmlTextReader(xmlFile); StringBuilder str = new StringBuilder(); while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.XmlDeclaration: str.Append("XML Declaration: "); str.Append(reader.Name); str.Append(" "); str.Append(reader.Value); str.Append("
"); break; case XmlNodeType.Element: str.Append("Element: "); str.Append(reader.Name); str.Append("
"); break; case XmlNodeType.Text: str.Append(" - Value: "); str.Append(reader.Value); str.Append("
"); break; case XmlNodeType.rument: str.Append("Comment: "); str.Append(reader.Value); str.Append("
"); break; } if (reader.AttributeCount > 0) { while (reader.MoveToNextAttribute()) { str.Append(" - Attribute: "); str.Append(reader.Name); str.Append(" Value: "); str.Append(reader.Value); str.Append("
"); } } } reader.Close(); XmlText.Text = 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>