XERCESC

建立本地XML文件输入数据的方法

XMLPlatformUtils::Initialize();

DOMImplementation* impl = DOMImplementationRegistry::getDOMImplementation( XMLString::transcode("Test"));
//生成本地文件,已存在的会被清空,不存在的会自动创建
XMLFormatTarget * Targe;
Targe = new LocalFileFormatTarget( "testXML.xml" );
//输出流指向文件
DOMLSOutput * Output = impl->createLSOutput();
Output->setByteStream( Targe );
//生成序列器
DOMLSSerializer * Serializer = impl->createLSSerializer();
//文档操作
DOMDocument * doc = impl->createDocument( 0 , XMLString::transcode("Test"), 0 );
//......
//写入到文件
Serializer->write( doc , Output );

delete Targe;

Output ->release();

doc ->release()

Serializer->release();

XMLPlatformUtils::Terminate();

 

//从本地XML文件中读取数据的方法,还有很多SETTER可以设置解释器的属性

XercesDOMParser * parser = new XercesDOMParser();
parser->parse("testXML.xml");
DOMDocument * doc = parser->getDocument();

DOMLSParser * myParser = impl->createLSParser( DOMImplementationLS::MODE_SYNCHRONOUS , 0 );
DOMDocument * doc = myParser->parseURI( XMLString::transcode( "testXML.xml" ) );

//出现错误将会抛出异常(错误信息),并返回NULL,正常则返回有效 DOMDocument(根)

 

//同一层次的访问
 DOMNode * ChildNode = Node->getFirstChild();
 for( ; ChildNode != NULL ; ChildNode = ChildNode ->getNextSibling() )
 {

  char *strValue = XMLString::transcode( ChildNode ->getNodeName() );   //返回的是动态生成的,需要自行释放
  std::cout << strValue <<endl;
  XMLString::release(&strValue);    //释放
 }

 

//对整棵树的遍历
 DOMTreeWalker * Walker = doc->createTreeWalker( root ,DOMNodeFilter::SHOW_ELEMENT , NULL , false );
 for( DOMNode *Node = Walker->nextNode() ; Node != NULL ; Node = Walker->nextNode() )   
 { 
  char *strValue = XMLString::transcode( Node->getNodeName() );   
  std::cout << strValue <<endl;
  XMLString::release(&strValue);   
 }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值