Мне нужно следующий XML-файл:
<root xmlns="http://someurl/element" xmlns:text="http://someurl/text">
<elements>
<element>
<Id>text:SOME_ID</Id>
<!-- some other elements -->
</element>
<element>
<!-- some other elements -->
<reference>
<link ref="text:SOME_ID" />
</refernce>
</element>
</elements>
</root>
Я хочу выбрать все дочерние элементы узла elment
, которые имеют элемент Id=text:SOME_ID
из узла reference
. Я хочу сделать это в C ++ с помощью метода selectNodes
объекта IXMLDOMNode
из синтаксического анализатора msxml.
В следующем примере у меня выбран узел рефенса в pChild
, а для свойства SelectionNamespaces
установлено xmlns:n="http://someurl/element"
:
MSXML2::IXMLDOMNodePtr pSelectedNodes =
pChild->selectNodes("../../n:element[n:Id=n:link/@ref]/n:*");
__ASSERT(pSelectedNodes->length > 0)
Это не работает. Что я делаю не так?