利用xerces-c将类数据转为xml串

int  TDDVRMessage::ToXml(char* xml)
{
 DOMImplementation* impl =  DOMImplementationRegistry::getDOMImplementation(X("Core"));
 int errorCode = 0;
       if (impl != NULL)
       {
           try
           {
               DOMDocument* doc = impl->createDocument(
                           0,                // root element namespace URI.
                           X("DVR"),         // root element name
                           0);               // document type object (DTD).


               DOMElement* rootElem = doc->getDocumentElement();
               DOMElement*  dvrElem = doc->createElement(X("Info"));
               rootElem->appendChild(dvrElem);
  char idTem[30];
  strcpy(idTem,ToString(this->ID()));
  dvrElem->setAttribute(X("ID"),X(idTem));
  dvrElem->setAttribute(X("IP"),X(this->IP()));
  dvrElem->setAttribute(X("UserName"),X(this->UserName()));
  dvrElem->setAttribute(X("PWS"),X(this->PWS()));
  strcpy(idTem,ToString(this->Port()));
  dvrElem->setAttribute(X("Port"),X(idTem));
  strcpy(idTem,ToString(this->ChannelIndex()));
  dvrElem->setAttribute(X("ChannelIndex"),X(idTem));
  MemBufFormatTarget* mft=Dom2MemBufFormatTarget(doc);
  strcpy(xml,(char*)mft->getRawBuffer());
  delete mft;
               doc->release();
  return 0;
  }
  catch (const OutOfMemoryException&)
           {
               XERCES_STD_QUALIFIER cerr << "OutOfMemoryException" << XERCES_STD_QUALIFIER endl;
               errorCode = 5;
           }
           catch (const DOMException& e)
           {
               XERCES_STD_QUALIFIER cerr << "DOMException code is:  " << e.code << XERCES_STD_QUALIFIER endl;
               errorCode = 2;
           }
           catch (...)
           {
               XERCES_STD_QUALIFIER cerr << "An error occurred creating the document" << XERCES_STD_QUALIFIER endl;
               errorCode = 3;
           }
  }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值