Ваш запрос работал бы, если бы у вас была следующая XML-структура:
<code>
<R>1</R>
<G>2</G>
<B>3</B>
</code>
, где R, G, B - подузлы кода.
Но в вашем случае R, G, Bа также код являются подузлами строки:
<row>
<code> </code>
<R>1</R>
<G>2</G>
<B>3</B>
</row>
Таким образом, запрос file/ROWS/row/*[not(self::code)]
соберет все значения R, G, B (все подузлы строки, кроме кода).
И вызов doc.SelectNodes()
, а не doc.DocumentElement.SelectNodes()
!