我有SDK,但上面只有语法,没有例子.
主要是不知道insertBefore中第二个参数的用法.
上面写的是_variat_t型变量,我该把什么值赋给它呀.我是这样做的,第三句有错
IXMLDOMNodePtr node;
IXMLDOMNodePtr ParentNode;
ParentNode-> insertBefore(Newnode,node->GetnodeValue());
主要是不知道insertBefore中第二个参数的用法.
上面写的是_variat_t型变量,我该把什么值赋给它呀.我是这样做的,第三句有错
IXMLDOMNodePtr node;
IXMLDOMNodePtr ParentNode;
ParentNode-> insertBefore(Newnode,node->GetnodeValue());
IXMLDOMNode *newChild,
VARIANT refChild,
IXMLDOMNode **outNewChild);就用_variant_t 吧。
_variant_t var(index); //index是一个位置值,也就是你要插入的
//对象的后一个位置
ParentNode->insertBefore (Newnode, var, &pOut);
你给它传递一个0,它就会插入到最后一个位置。
_variant_t var(0);
....再试试
Dim root As IXMLDOMElement
Dim newNode As IXMLDOMNode
Dim currNode As IXMLDOMNode
xmlDoc.async = False
xmlDoc.Load ("books.xml")
Set root = xmlDoc.documentElement
MsgBox root.xml
Set newNode = xmlDoc.createNode(NODE_ELEMENT, "VIDEOS", "")
Set currNode = root.insertBefore(newNode, root.childNodes.Item(1))
MsgBox root.xml
我已经看到这个例子了,只是不知道在VC中怎样写
你可以去
http://www.csdn.net/expert/topic/1019/1019608.xml?temp=5.912417E-02
http://www.csdn.net/expert/topic/1068/1068448.xml?temp=.7026178
里面取分了
真对不起,我很菜,花了您这么多时间.
HRESULT hr;
IXMLDOMDocument * pXMLDoc;
IXMLDOMNode * pXDN;
IXMLDOMNode *pNewNode,*pCurrNode;
IXMLDOMNodeList *pNodeList;
IXMLDOMElement *pRoot;
hr = CoInitialize(NULL);
hr = CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER,
IID_IXMLDOMDocument, (void**)&pXMLDoc);pXMLDoc->put_async(false);
_variant_t var("book.xml");
pXMLDoc->load(var, NULL);
hr = pXMLDoc->QueryInterface(IID_IXMLDOMElement, (void**)&pRoot);
pNewNode = pRoot->CreateNode(NODE_ELEMENT,"VIDEOS",NULL);hr = pRoot->get_childNodes(&pNodeList);int index; //a int type number
hr = pNodeList->item(index,&pCurrNode);_variant_t varIndex(index);
pRoot->insertBefore(pNewNode,varIndex, NULL);
第二个参数就是你需要将 newNode 插入到哪一个 node 的前面的指针。在 visual c++ 中,用 #import "msxml3.dll"引入 tlb 之后,会自动的创建一堆 auto_ptr ,所谓的智能指针。下面是一个例子:IXMLDOMNodePtr secondPtr = root->firstChild;
IXMLDOMNodePtr newPtr = dom->createNode(......);
root->insertBefore( newPtr , secondPtr );上面的语句执行完毕之后,newPtr 就插入到了 secondPtr 的前面,如果第二个参数为 NULL,就插入到 root 的所有孩子节点列表的最后。别忘了给分,谢谢!!!