资源描述:
《在 windows mobile 下使用msxml》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、在WindowsMobile下使用MSXML 首先是头文件:#include<msxml.h> 初始化环境:hr=CoInitializeEx(NULL,0); 创建一个XMLDOM对象:IXMLDOMDocument*pDOM=NULL;hr=CoCreateInstance(CLSID_DOMDocument,NULL,CLSCTX_INPROC_SERVER
2、CLSCTX_LOCAL_SERVER,IID_IXMLDOMDocument,(LPVOID*)pDOM); 然后就是加载XML的内容,加载有两种方式,从文件加载和从字符串加载:
3、//从文件加载VARIANTvt;VARIANT_BOOLfSuccess;vt.vt=VT_BSTR;vt.bstrVal=SysAllocString(szPath);hr=pDOM->load(vt,fSuccess);//从字符串加载,第一个参数的类型是BSTR,不过LP->loadXML(xmlSource,fSuccess); 得到DOM对象后,可以直接创建新的元素、节点;也可以从根节点开始遍历;也可以选择自己想要的节点直接进行处理。 选择根节点:IXMLDOMElement*pRoot =NULL;hr=pDom->get_u
4、mentElement(pRoot); 从根节点开始遍历需要用到IXMLDOMNodeList接口:IXMLDOMNodeList*pNodeList =NULL;hr=pRoot->get_childNodes(pNodeList);IXMLDOMNode* pNode =NULL;hr=pNodeList->nextNode(pNode);//注意这个返回值,你可以不管它,但不要用hr!=S_OK判断p;pNode);/} 从IXMLDOMNodeList中只能得到IXMLDOMNode接口,如果需要其它接口的操作,需要作点手脚。 1.接
5、口查询,在你你确切知道这个节点的类型的时候比较有用IXMLDOMElement*pElement=NULL;hr=pNode->QueryInterface(IID_IXMLDOMElement,(void**)pElement); 2.获得接口的真实类型,当你需要根据节点类型作不同处理的时候有用DOMNodeTypetype;Hr=pNode->get_nodeType(type); 需要选择部分节点进行访问有两种方法:HRESULTselectSingleNodes(BSTRqueryString,IXMLDOMNode**resultNod
6、e);HRESULTselectNodes(BSTRqueryString,IXMLDOMNode**resultNode); 第一个用来选在单一节点,第二个用来选择多个节点。查询的语法在XPath中有详细介绍。这两个方法对于IXMLDOMDocument,IXMLDOMNode,IXMLDOMElement都适用。其实只要知道IXMLDOMNode支持就可以了,其他两个接口都是它的派生接口。 比如要选择根节点下的所有Contact节点:hr=pRoot->selectNodes(TEXT(./Contact),pNodeList); 其它常用的操作
7、是删除元素、添加元素、设置和访问属性值: 删除元素可以使用:IXMLDOMNode::removeChild; 添加元素可以使用:IXMLDOMNode::appendChild; 设置属性可以使用:IXMLDOMElement::setAttribute; 访问属性可以使用:IXMLDOMElement::getAttribute; 创建元素、属性等可以使用IXMLDOMDocument的一系列create方法,比如创建元素的createElement等。这次最经常用到的两个是createElement和createProcessingInstruc
8、tion:IXMLDOMProcessingInstruction*pInstruction=NULL;IXMLDOMNode*pNel),TEXT(version='1.0'encoding='UTF-8'),pInstruction);_variant_tvt=pRoot;//插到根节点的前面pDom->insertBefore(pInstruction,vt,pNewNode);pInstruction->Release();pNewNode->Release()12下一页——感谢阅读这篇文章,..,;IX
9、MLDOMElement