<%@ Page language="c#" AutoEventWireup="true" %>
<%@ Import Namespace="System.Data" %>
<script language="C#" runat="server">
protected System.Xml.XmlDocument xmlSource = new System.Xml.XmlDocument();
private void LoadButton_Click(object sender, System.EventArgs e)
{
System.IO.Stream xmlDocStream = GetXmlDoc(XmlSourceTextBox.Text);
if(xmlDocStream!=null) {
xmlSource.Load(xmlDocStream);
ResultText.Text=xmlSource.InnerXml;
}
else
{
ResultText.Text="Could not resolve the XML document.";
}
}
public static System.IO.Stream GetXmlDoc(string xmlsource) {
System.IO.Stream stream=null;
if(xmlsource.StartsWith("<?xml") || xmlsource.StartsWith("<schema") )
{
stream = new System.IO.MemoryStream(System.Text.ASCIIEncoding.ASCII.GetBytes(xmlsource));
}
else
{
try
{
System.Uri xmluri = new System.Uri(xmlsource);
if(xmluri.IsFile) {
stream = new System.IO.FileStream(xmlsource, System.IO.FileMode.Open);
} else {
System.Net.HttpWebRequest request = (System.Net.HttpWebRequest) System.Net.WebRequest.Create(xmluri);
System.Net.WebResponse response = request.GetResponse();
stream = response.GetResponseStream();
}
}
catch(Exception e)
{
}
}
return stream;
}
private void QueryButton_Click(object sender, System.EventArgs e)
{
System.Text.StringBuilder s = new System.Text.StringBuilder();
if(xmlSource==null || xmlSource.InnerText=="") xmlSource.LoadXml(ResultText.Text);
try
{
System.Xml.XmlNodeList nl = xmlSource.SelectNodes(XPathText.Text);
int counter=1;
foreach(System.Xml.XmlNode node in nl)
{
s.Append(counter + "]" + node.InnerText + System.Environment.NewLine);
counter++;
}
QueryResult.Text=s.ToString();
}
catch(Exception selectNodesError)
{
QueryResult.Text=selectNodesError.ToString();
}
}
</script>
<HTML>
<HEAD>
<title>Finding a Particular Node in an XML Document</title>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<asp:textbox id="XmlSourceTextBox" runat="server" Width="379px" Height="162px" TextMode="MultiLine"></asp:textbox><br/>
<asp:button id="LoadButton" runat="server" Text="Load XML Document" OnClick="LoadButton_Click"></asp:button><br/>
<asp:TextBox id="ResultText" runat="server" Width="379px" Height="194px" TextMode="MultiLine"></asp:TextBox><br/>
<asp:Button id="QueryButton" runat="server" Text="Query" OnClick="QueryButton_Click"></asp:Button><br/>
<asp:TextBox id="XPathText" runat="server" Width="379px"></asp:TextBox><br/>
<asp:TextBox id="QueryResult" runat="server" TextMode="MultiLine" Height="229px" Width="379"></asp:TextBox>
</form>
</body>
</HTML>
|