请问:如何在VC7的 mfc工程中,用msxml4.dll来实现写xml文件中结点的属性呀?
我试着用IXMLDOMElementPtr的setAttribute(),可因其建结点时,都用的是IXMLDOMNodePtr,没办法将IXMLDOMElementPtr加到IXMLDOMNodePtr中去。
不知关于IXMLDOMElementPtr与IXMLDOMNodePtr的区别在于什么,它们如何转换呀?
请教各位哪儿有关于它们的详细介绍呀,我在MFC的工程中用msxml4.dll的sdk help,发现它们都是控制台的工程上写的,在VC7的MFC上写会遇到许多莫名其妙的错误。
如,
1。我用下面的语句试着将IXMLDOMNodePtr转成IXMLDOMElementPtr的,在一个函数下可以成功,而换个函数就不行了,总是反回为空。
pElement = static_cast<MSXML2::IXMLDOMElementPtr> (pNode);
2。我在工程中加了
#import "msxml4.dll"
using namespace MSXML2;
再将
MSXML2::IXMLDOMNodePtr pParentNode
改成
IXMLDOMNodePtr pParentNode
再编译就会出错说
error C2872: 'IXMLDOMNodePtr' : ambiguous symbol
真是让人一头雾水。
不知各位是否也碰到这样的情况,请各位大侠不吝赐教呀,在此先多谢了。
我试着用IXMLDOMElementPtr的setAttribute(),可因其建结点时,都用的是IXMLDOMNodePtr,没办法将IXMLDOMElementPtr加到IXMLDOMNodePtr中去。
不知关于IXMLDOMElementPtr与IXMLDOMNodePtr的区别在于什么,它们如何转换呀?
请教各位哪儿有关于它们的详细介绍呀,我在MFC的工程中用msxml4.dll的sdk help,发现它们都是控制台的工程上写的,在VC7的MFC上写会遇到许多莫名其妙的错误。
如,
1。我用下面的语句试着将IXMLDOMNodePtr转成IXMLDOMElementPtr的,在一个函数下可以成功,而换个函数就不行了,总是反回为空。
pElement = static_cast<MSXML2::IXMLDOMElementPtr> (pNode);
2。我在工程中加了
#import "msxml4.dll"
using namespace MSXML2;
再将
MSXML2::IXMLDOMNodePtr pParentNode
改成
IXMLDOMNodePtr pParentNode
再编译就会出错说
error C2872: 'IXMLDOMNodePtr' : ambiguous symbol
真是让人一头雾水。
不知各位是否也碰到这样的情况,请各位大侠不吝赐教呀,在此先多谢了。
<outline expanded="1"></outline>IXMLDOMNodePtr pOutlineNode = NULL;
IXMLDOMElementPtr spExpanded = NULL;pOutlineNode = theXml->selectSingleNode("/outline");
spExpanded = pOutlineNode;spExpanded->setAttribute("expanded", "0");至于区别据我个人愚见IXMLDOMElement应该表示一个xml元素.
比如outline,它可以有若干属性
IXMLDOMNode表示更广义的节点,data types, namespaces, document type definitions (DTDs), and schemas
当然只是个人体会。我不是高手,要不也不会有问题了:<
don't import to the default namespace
pElement = spNode;就可以
using namespace MSXML2;
再将
MSXML2::IXMLDOMNodePtr pParentNode
改成
IXMLDOMNodePtr pParentNode
-----------------------
你明明说要用XML的名字空间了,却把MSXML2::IXMLDOMNodePtr pParentNode改成IXMLDOMNodePtr pParentNode
当然就认不出IXMLDOMNodePtr是什么东东了
不是很明白你说的意思, using namespace MSXML2;不是整体声明的MSXML2的名字空间吗?怎么还需要在单个使用时再声明一次呢?