2014-08-29 2 views
0

Я работаю над переводом какого-то старого кода в нашей компании, который использовал XML DOM из ActiveXObject ('Microsoft XML, v6.0'.DOMCocument60) в .NET. XML Document (System.Xml.XmlDocument)ActiveX XML DOM SetProperty в .NET XmlDocument-Object

Я не очень знаком с деталями XML, но вот что я могу вам сказать (надеюсь, что это помогает)

Мне нужно заменить эту последовательность:

DOMIn.setProperty('SelectionNamespaces','xmlns:def="' + DOMIn.documentElement.namespaceURI + '"'); 
NodeList := DOMIn.selectNodes('//def:Parameters'); 
RootNode := NodeList.item(0); 

Он используется для обработки XML-файла, отправляемого через WebService. DOMIn - это встроенный XML-объект. Я надеюсь, что другие переменные сами объясняют.

Так что я понял, что мне нужно установить пространство имен «def» после того, как мы получим Object, чтобы он использовал XPath. Но я не знаю, как это делается в .NET XmlDocument. На самом деле это только первая строка. Остальные должны быть в порядке, как только начинаю методы заглавными буквами.

Пожалуйста, не задумывайтесь о Synthax, язык называется C/AL - очень проприетарный. Но теперь мы можем реализовать DLL-библиотеки .Net, и это моя текущая задача.

Можете ли вы мне помочь?

ответ

1

Используйте XmlNamespaceManager, например.

NsMgr := New XmlNamespaceManager(DOMIn.NameTable) 
NsMgr.AddNamespace("def", DOMIn.DocumentElement.NamespaceURI) 

NodeList := DOMIn.SelectNodes("//def:Parameter", NsMgr) 
+0

спасибо! –

Смежные вопросы