关于tinyxml在LINUX环境下的使用.docVIP

  • 2
  • 0
  • 约4.71千字
  • 约 4页
  • 2017-06-07 发布于北京
  • 举报
关于tinyxml在LINUX环境下的使用(浅析) 使用背景:webservice接口作为可跨平台的主流的接口组件方式,在电力行业已经被广泛地采用。针对比较复杂的XML数据,解析起来会比较棘手。TinyXML是目前非常流行的一款基于DOM模型的XML解析器,简单易用且小巧 玲珑,非常适合存储简单数据,配置文件,对象序列化等数据量不是很大的操作。通过在应用程序中引用TinyXML,解析数据会很方便。 TinyXML使用: 包含文件:tinystr.h?? tinyxml.h (头文件) libtinyxml.so(库文件) ?? ?程序引用: 打包生成XML数据 按照双方约定的规则生成XML数据,例如: 程序 #include ../def/tinyxml.h ? #include ../def/tinystr.h ? ?? ?using namespace std; extern C int CreateXML(void *pFin) { TiXmlElement *DataElement; ?? ?TiXmlText *DataText; ?? ?//创建一个XML的文档对象 ?? ?TiXmlDocument *myDocument = new TiXmlDocument(); ?? ?//创建一个根元素并连接 ?? ?TiXmlElement *RootElement = new TiXmlElement(DBSET); ?? ?myDocument-LinkEndChild(RootElement); ?? ?//创建一个R元素并连接 ?? ?TiXmlElement *RElement = new TiXmlElement(R); ?? ?RootElement-LinkEndChild(RElement); ?? ?//调用的服务名 ?? ?DataElement = new TiXmlElement(C); ?? ?DataElement-SetAttribute(N,_SERVICE_CODE); ?? ?DataText = new TiXmlText(S_TroubleReport); ?? ?DataElement-LinkEndChild(DataText); ?? ?RElement-LinkEndChild(DataElement); ?? ?//调用的服务版本号 ?? ?DataElement = new TiXmlElement(C); ?? ?DataElement-SetAttribute(N,_SERVICE_VERSION); ?? ?DataText = new TiXmlText(V1); ?? ?DataElement-LinkEndChild(DataText); ?? ?RElement-LinkEndChild(DataElement); ?? ?//附加过滤条件 ?? ?DataElement = new TiXmlElement(C); ?? ?DataElement-SetAttribute(N,_FILTER_CONDITION); ?? ?RElement-LinkEndChild(DataElement); ?? ?//数据 ?? ?RElement = new TiXmlElement(R); ?? ?RootElement-LinkEndChild(RElement); ?? ?//用户ID ?? ?DataElement = new TiXmlElement(C); ?? ?DataElement-SetAttribute(N,USER_ID); ?? ?DataText = new TiXmlText(“8888888”); ?? ?DataElement-LinkEndChild(DataText); ?? ?RElement-LinkEndChild(DataElement); ?? ?// ?? ?TiXmlPrinter printer; ?? ?myDocument-Accept( printer ); ?? ?coutprinter.CStr()endl; ?? ? ??? memcpy(pFin, printer.CStr(), strlen(printer.CStr())); ? *((char *)pFin+strlen(printer.CStr())) = 0x00; ? //释放资源 ???? delete myDocument; ? ??? return 0; } 生成数据: DBSET ??? R ??? ??? C N=_SERVICE_CODES_TroubleReport/ ??? ??? C N=_SERVICE_V

文档评论(0)

1亿VIP精品文档

相关文档