<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=ASP.Net%2FXML%2FXPath</id>
		<title>ASP.Net/XML/XPath - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=ASP.Net%2FXML%2FXPath"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.Net/XML/XPath&amp;action=history"/>
		<updated>2026-04-29T19:47:06Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=ASP.Net/XML/XPath&amp;diff=1864&amp;oldid=prev</id>
		<title> в 15:30, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.Net/XML/XPath&amp;diff=1864&amp;oldid=prev"/>
				<updated>2010-05-26T15:30:47Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:30, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=ASP.Net/XML/XPath&amp;diff=1865&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.Net/XML/XPath&amp;diff=1865&amp;oldid=prev"/>
				<updated>2010-05-26T11:51:41Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Finding a Particular Node in an XML Document?==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;%@ Page language=&amp;quot;c#&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Data&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;C#&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
protected System.Xml.XmlDocument xmlSource = new System.Xml.XmlDocument();&lt;br /&gt;
private void LoadButton_Click(object sender, System.EventArgs e) &lt;br /&gt;
{&lt;br /&gt;
    System.IO.Stream xmlDocStream = GetXmlDoc(XmlSourceTextBox.Text);&lt;br /&gt;
    if(xmlDocStream!=null) {&lt;br /&gt;
    xmlSource.Load(xmlDocStream);&lt;br /&gt;
    ResultText.Text=xmlSource.InnerXml;&lt;br /&gt;
    } &lt;br /&gt;
    else &lt;br /&gt;
    {&lt;br /&gt;
      ResultText.Text=&amp;quot;Could not resolve the XML document.&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
    &lt;br /&gt;
public static System.IO.Stream GetXmlDoc(string xmlsource) {&lt;br /&gt;
    System.IO.Stream stream=null;&lt;br /&gt;
    if(xmlsource.StartsWith(&amp;quot;&amp;lt;?xml&amp;quot;) || xmlsource.StartsWith(&amp;quot;&amp;lt;schema&amp;quot;) ) &lt;br /&gt;
    {&lt;br /&gt;
    stream = new System.IO.MemoryStream(System.Text.ASCIIEncoding.ASCII.GetBytes(xmlsource));&lt;br /&gt;
    } &lt;br /&gt;
    else &lt;br /&gt;
    {&lt;br /&gt;
    try &lt;br /&gt;
    {&lt;br /&gt;
      System.Uri xmluri = new System.Uri(xmlsource);          &lt;br /&gt;
      if(xmluri.IsFile) {&lt;br /&gt;
          stream = new System.IO.FileStream(xmlsource, System.IO.FileMode.Open);&lt;br /&gt;
      } else {&lt;br /&gt;
          System.Net.HttpWebRequest request =  (System.Net.HttpWebRequest) System.Net.WebRequest.Create(xmluri);&lt;br /&gt;
          System.Net.WebResponse response = request.GetResponse();      &lt;br /&gt;
          stream = response.GetResponseStream();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    catch(Exception e) &lt;br /&gt;
    {&lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
    return stream;&lt;br /&gt;
}&lt;br /&gt;
private void QueryButton_Click(object sender, System.EventArgs e) &lt;br /&gt;
{&lt;br /&gt;
    System.Text.StringBuilder s = new System.Text.StringBuilder();&lt;br /&gt;
    if(xmlSource==null || xmlSource.InnerText==&amp;quot;&amp;quot;) xmlSource.LoadXml(ResultText.Text);&lt;br /&gt;
    try &lt;br /&gt;
    {&lt;br /&gt;
    System.Xml.XmlNodeList nl = xmlSource.SelectNodes(XPathText.Text);&lt;br /&gt;
    int counter=1;&lt;br /&gt;
    foreach(System.Xml.XmlNode node in nl) &lt;br /&gt;
    {&lt;br /&gt;
      s.Append(counter + &amp;quot;]&amp;quot; + node.InnerText + System.Environment.NewLine);&lt;br /&gt;
      counter++;&lt;br /&gt;
    }&lt;br /&gt;
    QueryResult.Text=s.ToString();&lt;br /&gt;
    }&lt;br /&gt;
    catch(Exception selectNodesError) &lt;br /&gt;
    {&lt;br /&gt;
    QueryResult.Text=selectNodesError.ToString();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;HTML&amp;gt;&lt;br /&gt;
  &amp;lt;HEAD&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Finding a Particular Node in an XML Document&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;/HEAD&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;Form1&amp;quot; method=&amp;quot;post&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;asp:textbox id=&amp;quot;XmlSourceTextBox&amp;quot; runat=&amp;quot;server&amp;quot; Width=&amp;quot;379px&amp;quot; Height=&amp;quot;162px&amp;quot; TextMode=&amp;quot;MultiLine&amp;quot;&amp;gt;&amp;lt;/asp:textbox&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
      &amp;lt;asp:button id=&amp;quot;LoadButton&amp;quot; runat=&amp;quot;server&amp;quot; Text=&amp;quot;Load XML Document&amp;quot; OnClick=&amp;quot;LoadButton_Click&amp;quot;&amp;gt;&amp;lt;/asp:button&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
      &amp;lt;asp:TextBox id=&amp;quot;ResultText&amp;quot; runat=&amp;quot;server&amp;quot; Width=&amp;quot;379px&amp;quot; Height=&amp;quot;194px&amp;quot; TextMode=&amp;quot;MultiLine&amp;quot;&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
      &amp;lt;asp:Button id=&amp;quot;QueryButton&amp;quot; runat=&amp;quot;server&amp;quot; Text=&amp;quot;Query&amp;quot; OnClick=&amp;quot;QueryButton_Click&amp;quot;&amp;gt;&amp;lt;/asp:Button&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
      &amp;lt;asp:TextBox id=&amp;quot;XPathText&amp;quot; runat=&amp;quot;server&amp;quot; Width=&amp;quot;379px&amp;quot;&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
      &amp;lt;asp:TextBox id=&amp;quot;QueryResult&amp;quot; runat=&amp;quot;server&amp;quot; TextMode=&amp;quot;MultiLine&amp;quot; Height=&amp;quot;229px&amp;quot; Width=&amp;quot;379&amp;quot;&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/HTML&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Finding a Particular Node in an XML Document (VB)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%@ Page language=&amp;quot;vb&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Data&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;vb&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
Protected xmlSource As New System.Xml.XmlDocument()&lt;br /&gt;
    &lt;br /&gt;
Private Sub LoadButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) &lt;br /&gt;
    Dim xmlDocStream As System.IO.Stream = GetXmlDoc(XmlSourceTextBox.Text)&lt;br /&gt;
    If Not (xmlDocStream Is Nothing) Then&lt;br /&gt;
    xmlSource.Load(xmlDocStream)&lt;br /&gt;
    ResultText.Text = xmlSource.InnerXml&lt;br /&gt;
    Else&lt;br /&gt;
    ResultText.Text = &amp;quot;Could not resolve the XML document.&amp;quot;&lt;br /&gt;
    End If&lt;br /&gt;
End Sub&lt;br /&gt;
Public Shared Function GetXmlDoc(ByVal xmlsource As String) As System.IO.Stream&lt;br /&gt;
    Dim stream As System.IO.Stream = Nothing&lt;br /&gt;
    If xmlsource.StartsWith(&amp;quot;&amp;lt;?xml&amp;quot;) Or xmlsource.StartsWith(&amp;quot;&amp;lt;schema&amp;quot;) Then&lt;br /&gt;
    stream = New System.IO.MemoryStream(System.Text.ASCIIEncoding.ASCII.GetBytes(xmlsource))&lt;br /&gt;
    Else&lt;br /&gt;
    Try&lt;br /&gt;
      Dim xmluri As New System.Uri(xmlsource)&lt;br /&gt;
      If xmluri.IsFile Then&lt;br /&gt;
          stream = New System.IO.FileStream(xmlsource, System.IO.FileMode.Open)&lt;br /&gt;
      Else&lt;br /&gt;
          Dim request As System.Net.HttpWebRequest = CType(System.Net.WebRequest.Create(xmluri), System.Net.HttpWebRequest)&lt;br /&gt;
          Dim response As System.Net.WebResponse = request.GetResponse()&lt;br /&gt;
          stream = response.GetResponseStream()&lt;br /&gt;
      End If&lt;br /&gt;
    Catch e As Exception&lt;br /&gt;
    End Try &amp;quot;not a valid uri&lt;br /&gt;
    End If&lt;br /&gt;
    Return stream&lt;br /&gt;
End Function&lt;br /&gt;
Private Sub QueryButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) &lt;br /&gt;
    Dim s as new System.Text.StringBuilder()&lt;br /&gt;
    &lt;br /&gt;
    If xmlSource Is Nothing Or xmlSource.InnerText = &amp;quot;&amp;quot; Then&lt;br /&gt;
    xmlSource.LoadXml(ResultText.Text)&lt;br /&gt;
    End If&lt;br /&gt;
    Try&lt;br /&gt;
    Dim nl As System.Xml.XmlNodeList = xmlSource.SelectNodes(XPathText.Text)&lt;br /&gt;
    Dim counter As Integer = 1&lt;br /&gt;
    Dim node As System.Xml.XmlNode&lt;br /&gt;
    For Each node In nl&lt;br /&gt;
      s.Append(Convert.ToString(counter) + &amp;quot;]&amp;quot; + node.InnerText + System.Environment.NewLine)&lt;br /&gt;
          &lt;br /&gt;
      counter += 1&lt;br /&gt;
    Next node&lt;br /&gt;
    QueryResult.Text=s.ToString()&lt;br /&gt;
    Catch selectNodesError As Exception&lt;br /&gt;
      QueryResult.Text = selectNodesError.ToString()&lt;br /&gt;
    End Try&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;HTML&amp;gt;&lt;br /&gt;
  &amp;lt;HEAD&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Finding a Particular Node in an XML Document&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;/HEAD&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;Form1&amp;quot; method=&amp;quot;post&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;asp:textbox id=&amp;quot;XmlSourceTextBox&amp;quot; runat=&amp;quot;server&amp;quot; Width=&amp;quot;379px&amp;quot; Height=&amp;quot;162px&amp;quot; TextMode=&amp;quot;MultiLine&amp;quot;&amp;gt;&amp;lt;/asp:textbox&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
      &amp;lt;asp:button id=&amp;quot;LoadButton&amp;quot; runat=&amp;quot;server&amp;quot; Text=&amp;quot;Load XML Document&amp;quot; OnClick=&amp;quot;LoadButton_Click&amp;quot;&amp;gt;&amp;lt;/asp:button&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
      &amp;lt;asp:TextBox id=&amp;quot;ResultText&amp;quot; runat=&amp;quot;server&amp;quot; Width=&amp;quot;379px&amp;quot; Height=&amp;quot;194px&amp;quot; TextMode=&amp;quot;MultiLine&amp;quot;&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
      &amp;lt;asp:Button id=&amp;quot;QueryButton&amp;quot; runat=&amp;quot;server&amp;quot; Text=&amp;quot;Query&amp;quot; OnClick=&amp;quot;QueryButton_Click&amp;quot;&amp;gt;&amp;lt;/asp:Button&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
      &amp;lt;asp:TextBox id=&amp;quot;XPathText&amp;quot; runat=&amp;quot;server&amp;quot; Width=&amp;quot;379px&amp;quot;&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
      &amp;lt;asp:TextBox id=&amp;quot;QueryResult&amp;quot; runat=&amp;quot;server&amp;quot; TextMode=&amp;quot;MultiLine&amp;quot; Height=&amp;quot;229px&amp;quot; Width=&amp;quot;379&amp;quot;&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/HTML&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use XML Path to locate Node and edit its value==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%--&lt;br /&gt;
Code Revised from&lt;br /&gt;
       &lt;br /&gt;
Professional ASP.NET 2.0 XML (Programmer to Programmer) (Paperback)&lt;br /&gt;
by Thiru Thangarathinam &lt;br /&gt;
# Publisher: Wrox (January 18, 2006)&lt;br /&gt;
# Language: English&lt;br /&gt;
# ISBN: 0764596772&lt;br /&gt;
--%&amp;gt;&lt;br /&gt;
       &lt;br /&gt;
       &lt;br /&gt;
       &lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Xml&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Xml.XPath&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    void Page_Load(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
        //Set the ContentType to XML to write XML values&lt;br /&gt;
        Response.ContentType = &amp;quot;text/xml&amp;quot;;&lt;br /&gt;
        string xmlPath = MapPath(&amp;quot;MyBooks.xml&amp;quot;);&lt;br /&gt;
        XmlDocument document = new XmlDocument();        &lt;br /&gt;
        document.Load(xmlPath);&lt;br /&gt;
        XPathNavigator navigator = document.CreateNavigator();&lt;br /&gt;
        int count = navigator.Select(&amp;quot;/bookstore/book&amp;quot;).Count;&lt;br /&gt;
        //Navigate to the right nodes&lt;br /&gt;
        navigator.MoveToChild(&amp;quot;bookstore&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
        navigator.MoveToChild(&amp;quot;book&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
        //Loop through all the book nodes&lt;br /&gt;
        for(int i = 0; i &amp;lt; count; i++)&lt;br /&gt;
        {                   &lt;br /&gt;
            navigator.MoveToChild(&amp;quot;price&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
            double discount = navigator.ValueAsDouble +1;            &lt;br /&gt;
            navigator.CreateAttribute(&amp;quot;&amp;quot;, &amp;quot;discount&amp;quot;, &amp;quot;&amp;quot;, discount.ToString());&lt;br /&gt;
            //Move to the parent book element&lt;br /&gt;
            navigator.MoveToParent();&lt;br /&gt;
            //Move to the next sibling book element&lt;br /&gt;
            navigator.MoveToNext();            &lt;br /&gt;
        }&lt;br /&gt;
        navigator.MoveToRoot();&lt;br /&gt;
        Response.Write (navigator.OuterXml);&lt;br /&gt;
    }    &lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use XPathNavigator to create attribute==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%--&lt;br /&gt;
Code Revised from&lt;br /&gt;
       &lt;br /&gt;
Professional ASP.NET 2.0 XML (Programmer to Programmer) (Paperback)&lt;br /&gt;
by Thiru Thangarathinam &lt;br /&gt;
# Publisher: Wrox (January 18, 2006)&lt;br /&gt;
# Language: English&lt;br /&gt;
# ISBN: 0764596772&lt;br /&gt;
--%&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Xml&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Xml.XPath&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    void Page_Load(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
        //Set the ContentType to XML to write XML values&lt;br /&gt;
        Response.ContentType = &amp;quot;text/xml&amp;quot;;&lt;br /&gt;
        string xmlPath = MapPath(&amp;quot;MyBooks.xml&amp;quot;);&lt;br /&gt;
        XmlDocument document = new XmlDocument();        &lt;br /&gt;
        document.Load(xmlPath);&lt;br /&gt;
        XPathNavigator navigator = document.CreateNavigator();&lt;br /&gt;
        int count = navigator.Select(&amp;quot;/bookstore/book&amp;quot;).Count;&lt;br /&gt;
        //Navigate to the right nodes&lt;br /&gt;
        navigator.MoveToChild(&amp;quot;bookstore&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
        navigator.MoveToChild(&amp;quot;book&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
        //Loop through all the book nodes&lt;br /&gt;
        for(int i = 0; i &amp;lt; count; i++)&lt;br /&gt;
        {                   &lt;br /&gt;
            navigator.MoveToChild(&amp;quot;price&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
            double discount = navigator.ValueAsDouble +1;            &lt;br /&gt;
            navigator.CreateAttribute(&amp;quot;&amp;quot;, &amp;quot;discount&amp;quot;, &amp;quot;&amp;quot;, discount.ToString());&lt;br /&gt;
            //Move to the parent book element&lt;br /&gt;
            navigator.MoveToParent();&lt;br /&gt;
            //Move to the next sibling book element&lt;br /&gt;
            navigator.MoveToNext();            &lt;br /&gt;
        }&lt;br /&gt;
        navigator.MoveToRoot();&lt;br /&gt;
        Response.Write (navigator.OuterXml);&lt;br /&gt;
    }    &lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use XPath to read XML document==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%--&lt;br /&gt;
Code Revised from&lt;br /&gt;
       &lt;br /&gt;
Professional ASP.NET 2.0 XML (Programmer to Programmer) (Paperback)&lt;br /&gt;
by Thiru Thangarathinam &lt;br /&gt;
# Publisher: Wrox (January 18, 2006)&lt;br /&gt;
# Language: English&lt;br /&gt;
# ISBN: 0764596772&lt;br /&gt;
--%&amp;gt;&lt;br /&gt;
       &lt;br /&gt;
       &lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Xml&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    void Page_Load(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
        if (!Page.IsPostBack)&lt;br /&gt;
        {            &lt;br /&gt;
            ddlExpressions.Items.Add(&amp;quot;//book/title&amp;quot;);&lt;br /&gt;
            ddlExpressions.Items.Add(&amp;quot;//book[@genre=&amp;quot;novel&amp;quot;]/title&amp;quot;);&lt;br /&gt;
            ddlExpressions.Items.Add(&amp;quot;//book/author/first-name&amp;quot;);&lt;br /&gt;
            ddlExpressions.Items.Add(&amp;quot;//book[@genre=&amp;quot;philosophy&amp;quot;]/title&amp;quot;);&lt;br /&gt;
            ddlExpressions.Items.Add(&amp;quot;//book/price&amp;quot;);&lt;br /&gt;
            ddlExpressions.Items.Add(&amp;quot;//book[3]/title&amp;quot;);&lt;br /&gt;
            ddlExpressions.SelectedIndex = 0;&lt;br /&gt;
            UpdateDisplay();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    void ddlExpressions_SelectedIndexChanged(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
        UpdateDisplay();&lt;br /&gt;
    }&lt;br /&gt;
    void UpdateDisplay()&lt;br /&gt;
    {&lt;br /&gt;
        lstOutput.Items.Clear();&lt;br /&gt;
        string xmlPath = MapPath(&amp;quot;MyBooks.xml&amp;quot;);&lt;br /&gt;
        XmlDocument doc = new XmlDocument();&lt;br /&gt;
        doc.Load(xmlPath);&lt;br /&gt;
        XmlNodeList nodeList = doc.DocumentElement.SelectNodes(ddlExpressions.SelectedItem.Text);&lt;br /&gt;
        foreach (XmlNode child in nodeList)&lt;br /&gt;
        {&lt;br /&gt;
            lstOutput.Items.Add(&amp;quot;Node Name:&amp;quot; + child.Name);&lt;br /&gt;
            lstOutput.Items.Add(&amp;quot;Node Value:&amp;quot; + child.FirstChild.Value);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;XPath Example&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
        Select the XPath Expression:&lt;br /&gt;
        &amp;lt;asp:DropDownList ID=&amp;quot;ddlExpressions&amp;quot; AutoPostBack=&amp;quot;true&amp;quot; runat=&amp;quot;server&amp;quot; Width=&amp;quot;410px&amp;quot; OnSelectedIndexChanged=&amp;quot;ddlExpressions_SelectedIndexChanged&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;/asp:DropDownList&amp;gt;    &lt;br /&gt;
        &amp;lt;br /&amp;gt;&lt;br /&gt;
        &amp;lt;br /&amp;gt;&lt;br /&gt;
        &amp;lt;asp:ListBox ID=&amp;quot;lstOutput&amp;quot; runat=&amp;quot;server&amp;quot; Width=&amp;quot;587px&amp;quot; Height=&amp;quot;168px&amp;quot;&amp;gt;&amp;lt;/asp:ListBox&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;%--&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;bookstore&amp;gt;&lt;br /&gt;
  &amp;lt;book genre=&amp;quot;autobiography&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;The Autobiography&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;author&amp;gt;&lt;br /&gt;
      &amp;lt;first-name&amp;gt;A&amp;lt;/first-name&amp;gt;&lt;br /&gt;
      &amp;lt;last-name&amp;gt;B&amp;lt;/last-name&amp;gt;&lt;br /&gt;
    &amp;lt;/author&amp;gt;&lt;br /&gt;
    &amp;lt;price&amp;gt;999&amp;lt;/price&amp;gt;&lt;br /&gt;
  &amp;lt;/book&amp;gt;&lt;br /&gt;
  &amp;lt;book genre=&amp;quot;novel&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;The Man&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;author&amp;gt;&lt;br /&gt;
      &amp;lt;first-name&amp;gt;C&amp;lt;/first-name&amp;gt;&lt;br /&gt;
      &amp;lt;last-name&amp;gt;D&amp;lt;/last-name&amp;gt;&lt;br /&gt;
    &amp;lt;/author&amp;gt;&lt;br /&gt;
    &amp;lt;price&amp;gt;8888&amp;lt;/price&amp;gt;&lt;br /&gt;
  &amp;lt;/book&amp;gt;&lt;br /&gt;
&amp;lt;/bookstore&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--%&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using the XPathNavigator for Navigating Xml Documents==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%@ Import Namespace=&amp;quot;System&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Xml&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Xml.XPath&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    private void Page_Load(Object Source, EventArgs E)&lt;br /&gt;
    {&lt;br /&gt;
        StringBuilder sb = new StringBuilder();&lt;br /&gt;
        String space2 = &amp;quot;&amp;amp;nbsp;&amp;amp;nbsp;&amp;quot;;&lt;br /&gt;
        String space3 = &amp;quot;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
        XmlDocument _XmlDoc = new XmlDocument();&lt;br /&gt;
        _XmlDoc.Load(Server.MapPath(&amp;quot;Data.xml&amp;quot;));&lt;br /&gt;
    &lt;br /&gt;
        XPathNavigator _Nav;&lt;br /&gt;
        _Nav = _XmlDoc.CreateNavigator();&lt;br /&gt;
    &lt;br /&gt;
        _Nav.MoveToRoot();&lt;br /&gt;
        sb.Append(&amp;quot;&amp;lt;B&amp;gt;Root: &amp;lt;/B&amp;gt;&amp;quot;);&lt;br /&gt;
        sb.Append(&amp;quot;name=&amp;quot; + _Nav.Name + &amp;quot;, type=&amp;quot; + _Nav.NodeType.ToString());&lt;br /&gt;
        sb.Append(&amp;quot;&amp;lt;BR/&amp;gt;&amp;lt;BR/&amp;gt;&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        _Nav.MoveToFirstChild();&lt;br /&gt;
        sb.Append(&amp;quot;name=&amp;quot; + _Nav.Name + &amp;quot;, type=&amp;quot; + _Nav.NodeType.ToString());&lt;br /&gt;
        sb.Append(&amp;quot;&amp;lt;BR/&amp;gt;&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        _Nav.MoveToFirstChild();&lt;br /&gt;
        do &lt;br /&gt;
        {&lt;br /&gt;
            sb.Append(space2);&lt;br /&gt;
            sb.Append(&amp;quot;name=&amp;quot; + _Nav.Name + &amp;quot;, type=&amp;quot; + _Nav.NodeType.ToString());&lt;br /&gt;
            sb.Append(&amp;quot;&amp;lt;BR/&amp;gt;&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
            _Nav.MoveToFirstAttribute();&lt;br /&gt;
            sb.Append(space2);&lt;br /&gt;
            sb.Append(&amp;quot;Attribute: &amp;quot; + _Nav.Name + &amp;quot;=&amp;quot; + _Nav.Value);&lt;br /&gt;
            sb.Append(&amp;quot;&amp;lt;BR/&amp;gt;&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
            _Nav.MoveToParent();&lt;br /&gt;
        &lt;br /&gt;
            _Nav.MoveToFirstChild();&lt;br /&gt;
            do&lt;br /&gt;
            {&lt;br /&gt;
                sb.Append(space3);&lt;br /&gt;
                sb.Append(&amp;quot;name=&amp;quot; + _Nav.Name + &amp;quot;, type=&amp;quot; + _Nav.NodeType.ToString() + &amp;quot;, value=&amp;quot; + _Nav.Value);&lt;br /&gt;
                sb.Append(&amp;quot;&amp;lt;BR/&amp;gt;&amp;quot;);&lt;br /&gt;
            }while(_Nav.MoveToNext());&lt;br /&gt;
        &lt;br /&gt;
            _Nav.MoveToParent();&lt;br /&gt;
         }while(_Nav.MoveToNext());&lt;br /&gt;
        &lt;br /&gt;
        OutputLiteral.Text = sb.ToString();&lt;br /&gt;
    }        &lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;Using the XPathNavigator for Navigating Xml Documents&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Insert content here --&amp;gt;&lt;br /&gt;
        &amp;lt;asp:Literal id=&amp;quot;OutputLiteral&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&amp;lt;/asp:Literal&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
File: Data.xml&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;users&amp;gt;&lt;br /&gt;
  &amp;lt;user role=&amp;quot;admin&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;username&amp;gt;jsmith&amp;lt;/username&amp;gt;&lt;br /&gt;
    &amp;lt;password&amp;gt;john&amp;lt;/password&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
  &amp;lt;user role=&amp;quot;operator&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;username&amp;gt;tcruise&amp;lt;/username&amp;gt;&lt;br /&gt;
    &amp;lt;password&amp;gt;tom&amp;lt;/password&amp;gt;&lt;br /&gt;
  &amp;lt;/user&amp;gt;&lt;br /&gt;
&amp;lt;/users&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==XPathNavigator Selection Example==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%--&lt;br /&gt;
Code Revised from&lt;br /&gt;
       &lt;br /&gt;
Professional ASP.NET 2.0 XML (Programmer to Programmer) (Paperback)&lt;br /&gt;
by Thiru Thangarathinam &lt;br /&gt;
# Publisher: Wrox (January 18, 2006)&lt;br /&gt;
# Language: English&lt;br /&gt;
# ISBN: 0764596772&lt;br /&gt;
--%&amp;gt;&lt;br /&gt;
       &lt;br /&gt;
       &lt;br /&gt;
       &lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Xml&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    void Page_Load(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
        if (!Page.IsPostBack)&lt;br /&gt;
        {            &lt;br /&gt;
            ddlExpressions.Items.Add(&amp;quot;//book/title&amp;quot;);&lt;br /&gt;
            ddlExpressions.Items.Add(&amp;quot;//book[@genre=&amp;quot;novel&amp;quot;]/title&amp;quot;);&lt;br /&gt;
            ddlExpressions.Items.Add(&amp;quot;//book/author/first-name&amp;quot;);&lt;br /&gt;
            ddlExpressions.Items.Add(&amp;quot;//book[@genre=&amp;quot;philosophy&amp;quot;]/title&amp;quot;);&lt;br /&gt;
            ddlExpressions.Items.Add(&amp;quot;//book/price&amp;quot;);&lt;br /&gt;
            ddlExpressions.Items.Add(&amp;quot;//book[3]/title&amp;quot;);&lt;br /&gt;
            ddlExpressions.SelectedIndex = 0;&lt;br /&gt;
            UpdateDisplay();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    void ddlExpressions_SelectedIndexChanged(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
        UpdateDisplay();&lt;br /&gt;
    }&lt;br /&gt;
    void UpdateDisplay()&lt;br /&gt;
    {&lt;br /&gt;
        lstOutput.Items.Clear();&lt;br /&gt;
        string xmlPath = MapPath(&amp;quot;MyBooks.xml&amp;quot;);&lt;br /&gt;
        XmlDocument doc = new XmlDocument();&lt;br /&gt;
        doc.Load(xmlPath);&lt;br /&gt;
        XmlNodeList nodeList = doc.DocumentElement.SelectNodes(ddlExpressions.SelectedItem.Text);&lt;br /&gt;
        foreach (XmlNode child in nodeList)&lt;br /&gt;
        {&lt;br /&gt;
            lstOutput.Items.Add(&amp;quot;Node Name:&amp;quot; + child.Name);&lt;br /&gt;
            lstOutput.Items.Add(&amp;quot;Node Value:&amp;quot; + child.FirstChild.Value);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;XPath Example&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
        Select the XPath Expression:&lt;br /&gt;
        &amp;lt;asp:DropDownList ID=&amp;quot;ddlExpressions&amp;quot; AutoPostBack=&amp;quot;true&amp;quot; runat=&amp;quot;server&amp;quot; Width=&amp;quot;410px&amp;quot; OnSelectedIndexChanged=&amp;quot;ddlExpressions_SelectedIndexChanged&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;/asp:DropDownList&amp;gt;    &lt;br /&gt;
        &amp;lt;br /&amp;gt;&lt;br /&gt;
        &amp;lt;br /&amp;gt;&lt;br /&gt;
        &amp;lt;asp:ListBox ID=&amp;quot;lstOutput&amp;quot; runat=&amp;quot;server&amp;quot; Width=&amp;quot;587px&amp;quot; Height=&amp;quot;168px&amp;quot;&amp;gt;&amp;lt;/asp:ListBox&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;%--&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;bookstore&amp;gt;&lt;br /&gt;
  &amp;lt;book genre=&amp;quot;autobiography&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;The Autobiography&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;author&amp;gt;&lt;br /&gt;
      &amp;lt;first-name&amp;gt;A&amp;lt;/first-name&amp;gt;&lt;br /&gt;
      &amp;lt;last-name&amp;gt;B&amp;lt;/last-name&amp;gt;&lt;br /&gt;
    &amp;lt;/author&amp;gt;&lt;br /&gt;
    &amp;lt;price&amp;gt;999&amp;lt;/price&amp;gt;&lt;br /&gt;
  &amp;lt;/book&amp;gt;&lt;br /&gt;
  &amp;lt;book genre=&amp;quot;novel&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;The Man&amp;lt;/title&amp;gt;&lt;br /&gt;
    &amp;lt;author&amp;gt;&lt;br /&gt;
      &amp;lt;first-name&amp;gt;C&amp;lt;/first-name&amp;gt;&lt;br /&gt;
      &amp;lt;last-name&amp;gt;D&amp;lt;/last-name&amp;gt;&lt;br /&gt;
    &amp;lt;/author&amp;gt;&lt;br /&gt;
    &amp;lt;price&amp;gt;8888&amp;lt;/price&amp;gt;&lt;br /&gt;
  &amp;lt;/book&amp;gt;&lt;br /&gt;
&amp;lt;/bookstore&amp;gt;&lt;br /&gt;
&lt;br /&gt;
--%&amp;gt;&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>