xercesc编码示例Word下载.docx

上传人:b****6 文档编号:16160891 上传时间:2022-11-21 格式:DOCX 页数:10 大小:19.19KB
下载 相关 举报
xercesc编码示例Word下载.docx_第1页
第1页 / 共10页
xercesc编码示例Word下载.docx_第2页
第2页 / 共10页
xercesc编码示例Word下载.docx_第3页
第3页 / 共10页
xercesc编码示例Word下载.docx_第4页
第4页 / 共10页
xercesc编码示例Word下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

xercesc编码示例Word下载.docx

《xercesc编码示例Word下载.docx》由会员分享,可在线阅读,更多相关《xercesc编码示例Word下载.docx(10页珍藏版)》请在冰豆网上搜索。

xercesc编码示例Word下载.docx

classXercesParserXml{

public:

boolhas(conststd:

:

string&

srcByte,conststd:

node)const;

std:

stringget(conststd:

boolset(std:

node,conststd:

value);

booldel(std:

node);

private:

};

#endif

XercesParserXml.cpp

#include"

XercesParserXml.h"

xercesc/parsers/XercesDOMParser.hpp>

xercesc/dom/DOM.hpp>

xercesc/sax/HandlerBase.hpp>

xercesc/util/XMLString.hpp>

xercesc/util/PlatformUtils.hpp>

xercesc/framework/MemBufInputSource.hpp>

#ifdefined(XERCES_NEW_IOSTREAMS)

iostream>

#else

iostream.h>

vector>

XERCES_CPP_NAMESPACE_USE

DOMNode*getNode(DOMNode*node,constchar*nodeName){

//char*ptr=(char*)nodeName;

charptr[4096]={0};

sprintf(ptr,"

%s"

nodeName);

if(NULL==ptr)

returnNULL;

char*d="

."

;

char*p=NULL;

p=strtok(ptr,d);

vector<

vec;

while(p){

//printf("

name:

%s\n"

p);

vec.push_back(p);

p=strtok(NULL,d);

}

DOMNode*child;

DOMNode*curNode=node;

for(unsignedinti=1;

i<

vec.size();

i++){

//std:

cout<

<

vec[i]<

std:

endl;

if(0==curNode){

for(child=curNode->

getFirstChild();

child!

=0;

child=child->

getNextSibling()){//havenochild?

?

char*name=XMLString:

transcode(child->

getNodeName());

if(vec[i]==name){

vec[%d]:

%s\tname:

i,vec[i].c_str(),name);

XMLString:

release(&

name);

curNode=child;

break;

if(child==curNode->

getLastChild()){

"

suchnodeisn'

texist"

<

returncurNode;

classXStr

{

public:

//-----------------------------------------------------------------------

//ConstructorsandDestructor

XStr(constchar*consttoTranscode)

//Calltheprivatetranscodingmethod

fUnicodeForm=XMLString:

transcode(toTranscode);

~XStr()

fUnicodeForm);

//Gettermethods

constXMLCh*unicodeForm()const

returnfUnicodeForm;

private:

//Privatedatamembers

//

//fUnicodeForm

//ThisistheUnicodeXMLChformatofthestring.

XMLCh*fUnicodeForm;

#defineX(str)XStr(str).unicodeForm()

boolXercesParserXml:

has(conststd:

srcBytes,conststd:

node)const

//init

try{

XMLPlatformUtils:

Initialize();

catch(constXMLException&

toCatch){

char*message=XMLString:

transcode(toCatch.getMessage());

Errorduringinitialization!

:

\n"

message<

message);

returnfalse;

//1.loadtherightxmlbytesfromsignaltree

XercesDOMParser*parser=newXercesDOMParser();

if(NULL==parser){

parser->

setValidationScheme(XercesDOMParser:

Val_Always);

setDoNamespaces(true);

//optional

ErrorHandler*errHandler=(ErrorHandler*)newHandlerBase();

setErrorHandler(errHandler);

InputSource*pInputSource=newMemBufInputSource((XMLByte*)srcBytes.c_str(),srcBytes.size(),X("

GUID"

));

if(NULL==pInputSource){

deleteparser;

deleteerrHandler;

//2.parserthexmlbytestoaDOMtree

parse(*pInputSource);

DOMDocument*doc=parser->

getDocument();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1