求一个使用TinyXpath的例子
马上给分,绝不食言
马上给分,绝不食言
解决方案 »
- 关于dll嵌套调用的问题,loadlibrary返回空,错误码为998的问题?
- 求教:DirectDraw窗口模式焦点问题.
- 我使对话框程序在启动时自动隐藏了(代码见下面),现在要通过一个快捷键让它再显示,应该怎么让它显示?
- 初学ActiveX,问几个问题,希望得到一条明路
- 写了音频网络传输的程序,是用UDP发送的,怎么样让UDP发送的数据穿过服务器进入局域网中的一个电脑?
- 第一次做动态库(vc),各位解解惑!!!
- 这到底怎么回事?
- 我的电脑一开机就进CMOS这是怎么拉
- 寻找一个对话框的函数~~~~~~~~~~~~~~~求救高手
- 哪里有可以读取WORD文档的C/C++源代码?
- 为什么我用VS2008建的MFC项目在压缩后再次解压缩就报错呢?
- 内存中自绘BMP图像:取得位图数据相关
#include "tinyxml.h"
#include "tinystr.h"
#include "xpath_static.h"
#include "xpath_processor.h"
#include <string>
#include <windows.h>
#include <atlstr.h>using namespace std;
using namespace TinyXPath;void ReadXmlFile(string& szFileName)
{
//读取Xml文件,并遍历。
//创建一个XML的文档对象。
TiXmlDocument *myDocument = new TiXmlDocument(szFileName.c_str());
myDocument->LoadFile(); //获得根元素,即definitions。
TiXmlElement *RootElement = myDocument->RootElement(); int types_num = i_xpath_int(RootElement,"count(//types)");//types元素个数。
int mess_num = i_xpath_int(RootElement,"count(//message)");//message元素个数。
int port_num = i_xpath_int(RootElement,"count(/definitions/portType)");//portType元素个数。
int elem_num = i_xpath_int(RootElement,"count(//types/schema/element[2]/complexType/all/element)");//element元素个数。 //获取第一个operation的name属性值。
string oper_name = XAp_xpath_attribute(RootElement,"/definitions/portType/operation/@name")->Value();
cout<<oper_name<<endl; //获取第一个operation的input节点的message属性值。
string inputMess_name = XAp_xpath_attribute(RootElement,"/definitions/portType/operation/input/@message")->Value();
inputMess_name = inputMess_name.substr(4);
cout<<inputMess_name<<endl; //到所有message元素中去找name属性与inputMess_name相等的message元素。
for(int i=1; i<mess_num+1; i++)
{
string mess_name = XAp_xpath_attribute(RootElement,"/definitions/message[2]/@name")->Value();//message元素中去找name属性
cout<<mess_name<<endl;
if(inputMess_name.compare(mess_name)==0)
{
//获得message元素子元素part的element属性值。
string elem_name = XAp_xpath_attribute(RootElement,"/definitions/message[i]/part/@element")->Value();//???此处不能使用变量i,该怎么办?
cout<<elem_name<<endl;
return;
} } //获取第一个operation的output节点的message属性值。
string outputMess_name = XAp_xpath_attribute(RootElement,"/definitions/portType/operation/output/@message")->Value();
outputMess_name = outputMess_name.substr(4);
cout<<outputMess_name<<endl;
}int main()
{
string fileName = "D:\\wsdl.xml";
ReadXmlFile(fileName);
}代码给你了。帮我看看代码里三个问号处的问题。