Как запросить пространство имен по умолчанию с помощью MSXML
У меня есть немного XML:
Value
Заметка: Это н'т фактический XML яя использую этопросто красивее и короче и демонстрирует проблему.
Используя MSXML, я могу запрашивать узлы:
IXMLDOMNode node = doc.selectSingleNode("//PropertyGroup/@Condition");
И это прекрасно работает
Condition = "»$ (Ключ)»==»1111' »
Но это'не правда ли у меня есть XMLНа самом деле XML, который я имею, содержит объявление пространства имен:
XMLNS =»http://schemas.microsoft.com/developer/msbuild/2003"
делаяфактический XML-документ:
Value
Теперь мой запрос:
IDOMNode node = doc.selectSingleNode("//PropertyGroup/@Condition");
не возвращает подходящих узлов.
Как я могу запросить пространство имен по умолчанию, используя MSXML?
Замечания:
я уже знаюкак запроситьне по умолчанию пространство имен в xml; ты используешь:
doc.setProperty("SelectionNamespaces",
"xmlns="http://schemas.microsoft.com/developer/msbuild/2003");
я уже знаюкак запросить пространство имен по умолчанию в .NET, Вы используете диспетчер пространства имен, присваиваете пространству имен по умолчанию имя, затем запрашиваете это имя, а затем можете запросить пространство имен не по умолчанию, поскольку оно 'больше не по умолчанию
Можно просто удали оскорблениеxmlns
текст из строки XML я получаю, но яскорееделай это правильно "
Как я могу запросить "дефолт", или же "неназванный» пространство имен с использованием MSXML?
Заметка: На самом деле XML я использую SQL Serverс XMLShowPlan выход:
...
Снова вы можете увидеть некорректное объявление пространства имен. Удаление работает, но этоскучно
Что еще ты пробовал?я также попытался установитьSelectionNamespace:
doc.setProperty('SelectionNamespaces',
'xmlns="http://schemas.microsoft.com/developer/msbuild/2003"');
какMicrosoft намекает на в статье KB.
Как яполучить пространство имен по умолчанию?На самом деле я неуход о пространствах имен. Мой запрос имеет смысл, и я хочу, чтобы он работал. Итак, еще один подход к вопросу может быть:
Как я могу запросить пространство имен по умолчанию, или нет, и неважно, что это имя пространства имен (или нет)т)?
Заметка: msxml isродные код и использование его из собственного компилятора Win32 (т.е. нет .NET Framework или CLR)