三九宝宝网宝宝教育教学论文

c语言如何调用xml的接口函数

02月09日 编辑 39baobao.com

[C语言中qsort函数怎么用]qsort函数是编译器函数库自带的快速排序函数。qsort 的函数原型是:void qsort(void*base,size_t num,size_t width,int(__cdecl*compare)(const void*,const void*)); 它的参数...+阅读

1、Libxml2 是一个xml c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MIT License的免费开源软件。它除了支持c语言版以外,还支持c++、PHP、Pascal、Ruby、Tcl等语言的绑定,能在Windows、Linux、Solaris、MacOsX等平台上运行。

2、例程:/*************** 001 002 C:\test.txt *******************/// 我们用MFC来读取上述xml,代码如下:void ReadXml(CString strXmlPath) { MSXML2::IXMLDOMDocumentPtr pDoc; ::CoInitialize(NULL); HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40)); if (!SUCCEEDED(hr)) { MessageBox(_T("创建DOMDocument对象失败。

\n请检查运行环境"), _T("错误"), MB_ICONERROR); return; } // 读取xml pDoc->put_async(VARIANT_FALSE); VARIANT_BOOL bhr = pDoc->load((_variant_t)strXmlPath); if (bhr != VARIANT_TRUE) { MessageBox(_T("无法正确读取xml文件"), _T("错误"), MB_ICONERROR); return; } // 根节点取得 MSXML2::IXMLDOMElementPtr root = pDoc->documentElement; // 取得根节点的名字 _variant_t strRootName = root->nodeName; _bstr_t wstrRootName(strRootName.bstrVal); MSXML2::IXMLDOMNodeListPtr nodeList = root->GetchildNodes();//cases // 解析cases的子节点 ReadCases(nodeList); } void ReadCases(MSXML2::IXMLDOMNodeListPtr nodeList) { int ilength = nodeList->Getlength(); for (int nodeCount = 0; nodeCount MSXML2::IXMLDOMNodePtr nodePtr = nodeList->nextNode(); _variant_t strNodeName = nodePtr->GetnodeName(); _variant_t strNodeValue = nodePtr->GetnodeValue(); // 读取case节点下的子节点 ReadCase(nodePtr->GetchildNodes()); } } void ReadCase(MSXML2::IXMLDOMNodeListPtr nodeList) { CString strLogInfo; strLogInfo.Empty(); CString strNo; // case编号 CString strSrcFile; // 源文件 CString strDestFile; // 目标文件 for (int nodeCount = 0; nodeCount Getlength(); nodeCount++) { MSXML2::IXMLDOMNodePtr nodePtr = nodeList->nextNode(); _variant_t strCaseNodeName = nodePtr->GetnodeName(); _variant_t strCaseNodeValue = nodePtr->Gettext(); BSTR bStrTemp = strCaseNodeName.bstrVal; CString strTemp = CString(bStrTemp); SysFreeString(bStrTemp); CString strNodeName = strTemp; // 节点的值,如何取得? if (0 == strNodeName.CompareNoCase(_T("NO"))) { strNo = (BSTR)strCaseNodeValue.pbstrVal; // 取得的值可以打印出来 printf(strNo); } // 节点有属性值,该怎么处理? else if (0 == strNodeName.CompareNoCase(_T("CopyFile"))) { strSrcFile.Empty(); strDestFile.Empty(); // 取得节点的属性值 MSXML2::IXMLDOMNamedNodeMapPtr pDOMAttrList= nodePtr->Getattributes(); for (int j = 0; j Getlength(); j++) { MSXML2::IXMLDOMNodePtr pDOMAttr= pDOMAttrList->Getitem(j); // 取得源文件路径 if (CompareNoCase((char*)pDOMAttr->GetnodeName(), _T("src"))) { strSrcFile = pDOMAttr->GetnodeTypedValue(); // 取得目标文件路径 } else if (CompareNoCase((char*)pDOMAttr->GetnodeName(), _T("dest"))) { strDestFile =pDOMAttr->GetnodeTypedValue(); } CopyFile(strSrcFile, strDestFile, FALSE); } else if (0 == strNodeName.CompareNoCase(_T("DelFile"))) { strDestFile.Empty(); strDestFile = CString((BSTR)strCaseNodeValue.pbstrVal); DeleteFile(strDestFile); } } }

以下为关联文档:

C语言当中的qsort函数功 能: 使用快速排序例程进行排序 用 法: void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *)); 参数:1 待排序数组首地址 2 数组中待排序元...

C语言 sort函数的一点疑问sort是排序吧。程序错误有三: 1. b=x-1 是错的,因为x和b一样表示数组的长度,注意,长度和最后一个下标相差一,但是在for里面采用诸如for(int m=0;m<b;m++),m的循环是从0到b-1的,所...

C语言中 memset函数都可以给什么类型的数组清零任何类型的数组都可以,实际上memset函数是对某一个地址以及该地址之后的一串空间进行赋值操作,只要是地址值,都可以被赋值。 1、memset是计算机中C/C++语言函数。将s所指向的某...

c语言中函数memset是什么意思memset()的函数, 它可以一字节一字节地把整个数组设置为一个指定的值。 memset()函数在mem.h头文件中声明,它把数组的起始地址作为其第一个参数,第二个参数是设置数组每个字节的...

C程序如何用for语句调用结构体类型对的,不可以调用a[i].result_j这样的,这样会出错,你这样定义了就只能写为下面的三个语句,不能用for了: if (a[i].result_1) temp++; if (a[i].result_2) temp++; if (a[i].result...

C语言中对字符串进行操作的标准库函数有哪些1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 s...

C语言通用函数字符指针数组寻找指定字符串#includenbsp;“stdafx.h“#includenbsp;amp;lt;stdio.hamp;gt;#includenbsp;amp;lt;string.hamp;gt;intnbsp;str2str(constnbsp;charnbsp;*str,nbsp;constnbsp;charnbsp;*s...

c语言创建单向链表函数void inputinfo(stu_info **head,int n) { int i=1; stu_info *loc_head=NULL,*tail; loc_head=(stu_info *)malloc(sizeof(stu_info)); tail=loc_head; for(i=1;i<=n;i++)...

关于c语言中的结构体数组作为函数参数传递的1、结构体数组传给指针,实质上是不可能的,本质上传的是数组首地址,根据偏移来操作数组,这样看起来好像是真在操作数组一样。就和普通指针一样使用,只不过它是结构体数组。 2、例...

推荐阅读
图文推荐