Я не уверен, почему это не работает.
У меня есть XmlNode в известном формате. Это:
<[setting-name]>
<dictionary>
<[block-of-xml-to-process]/>
<[block-of-xml-to-process]/>
<[block-of-xml-to-process]/>
</dictionary>
</[setting-name]>
У меня есть ссылка на узел в переменной с именем pattern . Я хочу итеративную коллекцию узлов, каждый из которых представлен выше [блок-из-xml-to-process]. На данный момент название и структура блоков неизвестны. [Имя_установки] известно.
Это кажется довольно простым. Я могу вспомнить полдюжины выражений XPATH, которые должны указывать на блоки. Я пробовал:
XmlNodeList kvpsList = pattern.SelectNodes(String.Format(@"/{0}/dictionary/*", _CollectionName));
XmlNodeList kvpsList = pattern.SelectNodes(String.Format(@"{0}/dictionary/*", _CollectionName));
XmlNodeList kvpsList = pattern.SelectNodes(@"//dictionary/*");
XmlNodeList kvpsList = pattern.SelectNodes(@"//dictionary");
Но мне явно не хватает базового понимания XPATH или какой-то особой хитрости .SelectNodes, потому что ни один из них не работает согласованно.
Что я делаю не так?