Finding a Particular Node in an XML Document? : XPath « XML « ASP.Net






Finding a Particular Node in an XML Document?


<%@ 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>

 








Related examples in the same category

1.Use XPath to read XML document
2.XPathNavigator Selection Example
3.Use XML Path to locate Node and edit its value
4.Use XPathNavigator to create attribute
5.Finding a Particular Node in an XML Document (VB)
6.Using the XPathNavigator for Navigating Xml Documents