我有这个xml:
<?xml version="1.0" encoding="utf-8" ?>
<ArrayOfFileInformation xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://tempuri.org/"> <Data> ......
当我将"xmlns="http://tempuri.org/"
留在Xml中时,以下内容不会返回任何节点:
CString tag = L"//Data";
MSXML2::IXMLDOMNodeListPtr pDataTag = pXMLDocument->selectNodes((_bstr_t)tag);
当我删除属性时,一切正常。
你能帮帮我吗?答案 0 :(得分:2)
为了在XPath中选择命名空间节点,您需要使用XPath库提供的工具将前缀绑定到相关的命名空间URI,然后在按名称选择节点时使用该前缀。 selectNodes方法的MSDN文档有a C++ example of just this,关键是在文档上设置SelectionNamespaces
属性
pXMLDocument->setProperty("SelectionNamespaces", "xmlns:tmp='http://tempuri.org/'");
然后允许您使用//tmp:Data