Я не уверен, почему это не работает.Основы XmlNode.SelectNodes?
У меня есть XmlNode в известном формате. Это:
<[setting-name]>
<dictionary>
<[block-of-xml-to-process]/>
<[block-of-xml-to-process]/>
<[block-of-xml-to-process]/>
</dictionary>
</[setting-name]>
У меня есть ссылка на узел в переменной с именем шаблон. Я хочу, чтобы итерабельный набор узлов, каждый из которых представлен [block-of-xml-to-process] выше. На данный момент имя и структура блоков неизвестны. [Setting-name] известно.
Это кажется довольно простым. Я могу представить себе полдюжины выражений 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, потому что ни один из них не работает последовательно.
Что я делаю неправильно?
Вы не предоставили необходимой информации: полный XML-документ, без каких-либо обобщений, пожалуйста ;; Что представляет собой узел, представленный «шаблоном»? Возможно, это не главный узел документа. Наконец, что такое _collectionname? Можете ли вы просто привести пример со значениями * fixed * (остановка в отладчике!). –
Шахта не работает. У меня есть объект XmlNode, свойство ChildNodes которого явно содержит два узла, оба из которых называются «wavetrack». Несмотря на это, когда я вызываю метод SelectNodes XmlNode («wavetrack»), полученный XmlNodeList содержит нулевые элементы. Это происходит несмотря на вариацию, которую я пробовал для XPath, включая «// wavetrack». Я понятия не имею, почему он не работает, потому что кажется, что это должно быть просто. – Triynko
Кажется, это известное/неожиданное поведение: http://stackoverflow.com/questions/4271689/xml-selectnodes-with-default-namespace-via-xmlnamespacemanager-not-working-as-ex – Triynko