@Gordon - "/ E // C" справится с любым количеством уровней между E и C.

<Document>
  <A> 
    <B> 
      <C></C>
    </B>
  </A>
  <E>
   <F>
    <C></C>
   </F>
   <G>
    <C></C>
  </G>
 </E>
</Document>

я загружаю вышеупомянутый XML в XmlDocument и делаю SelectSingleNode на A, используя запрос XPath // C

XmlNode oNode = oDocument.SelectSingleNode("E");
XmlNodeList oNodeList = oNode.SelectNodes("//C");

почему он возвращает узлы из-под B, когда то, что я ожидал бы получить, будет возвращать только узлы из-под E

Есть смысл?

Редактировать: Как я могу сделать так, чтобы он только возвращался с этого узла?

Ответы на вопрос(4)

Ваш ответ на вопрос