Mega Code Archive

 
Categories / C# Tutorial / XML
 

XPath Navigator

using System; using System.Xml.XPath;   class XPathNavigatorSample {     [STAThread]     static void Main(string[] args) {       XPathDocument xpathDocument = new XPathDocument("../../sample.xml");       XPathNavigator xpathNavigator = xpathDocument.CreateNavigator();       xpathNavigator.MoveToRoot();       NavigateTree(xpathNavigator);     }     private static void NavigateTree (XPathNavigator xpathNavigator) {       if (xpathNavigator.HasChildren) {         xpathNavigator.MoveToFirstChild();         DisplayNode(xpathNavigator);         NavigateTree(xpathNavigator);         while (xpathNavigator.MoveToNext()) {           DisplayNode(xpathNavigator);           NavigateTree(xpathNavigator);         }         xpathNavigator.MoveToParent();       }     }     private static void DisplayNode (XPathNavigator xpathNavigator) {       if (xpathNavigator.NodeType == XPathNodeType.Text) {         Console.Out.WriteLine(xpathNavigator.Value);       } else {         Console.Out.Write(xpathNavigator.Name);         if (xpathNavigator.HasAttributes) {           int attributesCount = 1;           while (xpathNavigator.MoveToNextAttribute()) {             attributesCount ++;           }           Console.Out.Write(attributesCount);           if (attributesCount != 1) {             xpathNavigator.MoveToParent();           }         }       }     }   }