CSharp examples for System.Xml:XML Node
Find XPath from XmlNode
using System.Xml.Serialization; using System.Xml; using System.Text; using System.IO;/*from w w w.ja va 2 s. com*/ using System.Collections.Generic; using System.Collections; using System; public class Main{ static string FindXPath(XmlNode node) { StringBuilder builder = new StringBuilder(); while( node != null ) { switch( node.NodeType ) { case XmlNodeType.Attribute: { builder.Insert( 0, "/@" + node.Name ); node = ((XmlAttribute)node).OwnerElement; break; } case XmlNodeType.Element: { int index = FindElementIndex( (XmlElement)node ); builder.Insert( 0, "/" + node.Name + "[" + index + "]" ); node = node.ParentNode; break; } case XmlNodeType.Document: { return builder.ToString(); } case XmlNodeType.Text: { node = node.ParentNode; break; } //default: //{ // throw new ArgumentException( "Only elements and attributes are supported" ); //} } } throw new ArgumentException( "Node was not in a document" ); } }