https://stackoverflow.com/questions/36019544/if-double-slash-is-used-2-times-in-xpath-what-does-it-mean
Double slash //
means any descendant node of the current node in the html tree which matches the locator.
Single slash /
means node which is a direct child of the current.
//div[@id='add']//span[@id=addone']
will match
<div id="add"> <div> <span id="addone"> </div> </div>
And
<div id="add"> <span id="addone"> </div>
//div[@id='add']/span[@id=addone']
will match only the second html tree.
https://stackoverflow.com/questions/1457638/xpath-get-nodes-where-child-node-contains-an-attribute
/// <summary> /// /// </summary> [Test] public void Test() { XmlDocument document = new XmlDocument(); document.Load(@"C:\Users\clu\Desktop\test.xml"); XPathNavigator navigator = document.CreateNavigator(); var nodeList = navigator.Select(@"//book[title/@lang = 'it']"); Console.WriteLine(nodeList.Count); }