源码如下: pDoc->load("d:\\he.xml");
MSXML2::IXMLDOMNodePtr pNode;
pNode=pDoc->selectSingleNode("//Book");
MSXML2::DOMNodeType nodeType;
pNode->get_nodeType(&nodeType);
MSXML2::IXMLDOMNamedNodeMapPtr pAttrMap=NULL;
MSXML2::IXMLDOMNodePtr pAttrItem;
_variant_t variantValue;
pNode->get_attributes(&pAttrMap);
long count;
count=pAttrMap->get_length(&count);
pAttrMap->get_item(0,&pAttrItem);
//取得节点的值
pAttrItem->get_nodeTypedValue(&variantValue);
m_strId=(char *)(_bstr_t)variantValue;
xml文件:
<Book id="a" is="a">
<Author>aa</Author>
<Title>aaa</Title>
</Book>
问题:
1.按照上述xml文件,下面代码
pNode->get_attributes(&pAttrMap);
long count;
count=pAttrMap->get_length(&count);
pAttrMap->get_item(0,&pAttrItem);
//取得节点的值
pAttrItem->get_nodeTypedValue(&variantValue);
m_strId=(char *)(_bstr_t)variantValue;
取得的count应该是2吧,我怎么一直是0? 如果是2,怎么把这列属性依次取出来呢? 2. 上述去属性程序如果放到一个树节点循环中好像到第二次就报内存异常,是没释放还是咋的?谢谢高人指点,结贴快!
MSXML2::IXMLDOMNodePtr pNode;
pNode=pDoc->selectSingleNode("//Book");
MSXML2::DOMNodeType nodeType;
pNode->get_nodeType(&nodeType);
MSXML2::IXMLDOMNamedNodeMapPtr pAttrMap=NULL;
MSXML2::IXMLDOMNodePtr pAttrItem;
_variant_t variantValue;
pNode->get_attributes(&pAttrMap);
long count;
count=pAttrMap->get_length(&count);
pAttrMap->get_item(0,&pAttrItem);
//取得节点的值
pAttrItem->get_nodeTypedValue(&variantValue);
m_strId=(char *)(_bstr_t)variantValue;
xml文件:
<Book id="a" is="a">
<Author>aa</Author>
<Title>aaa</Title>
</Book>
问题:
1.按照上述xml文件,下面代码
pNode->get_attributes(&pAttrMap);
long count;
count=pAttrMap->get_length(&count);
pAttrMap->get_item(0,&pAttrItem);
//取得节点的值
pAttrItem->get_nodeTypedValue(&variantValue);
m_strId=(char *)(_bstr_t)variantValue;
取得的count应该是2吧,我怎么一直是0? 如果是2,怎么把这列属性依次取出来呢? 2. 上述去属性程序如果放到一个树节点循环中好像到第二次就报内存异常,是没释放还是咋的?谢谢高人指点,结贴快!
http://topic.csdn.net/u/20080410/17/3443c5d7-c0bb-447d-99e4-cf93f1233915.html