本文整理汇总了C++中XmlWriter::characters方法的典型用法代码示例。如果您正苦于以下问题:C++ XmlWriter::characters方法的具体用法?C++ XmlWriter::characters怎么用?C++ XmlWriter::characters使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XmlWriter
的用法示例。
在下文中一共展示了XmlWriter::characters方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: writeCoord
/** writes a coord value or a coord segment.
*/
static void writeCoord(XmlWriter &out, IomObject &obj)
{
/*
object: COORD
C1
102.0
C2
402.0
<COORD><C1>102.0</C1><C2>402.0</C2></COORD>
*/
out.startElement(tags::get_COORD(),0,0);
out.startElement(tags::get_C1(),0,0);
const XMLCh *c1=obj->getAttrPrim(tags::get_C1(),0);
out.characters(c1);
out.endElement(/*C1*/);
const XMLCh *c2=obj->getAttrPrim(tags::get_C2(),0);
if(c2){
out.startElement(tags::get_C2(),0,0);
out.characters(c2);
out.endElement(/*C2*/);
const XMLCh *c3=obj->getAttrPrim(tags::get_C3(),0);
if(c3){
out.startElement(tags::get_C3(),0,0);
out.characters(c3);
out.endElement(/*C3*/);
}
}
out.endElement(/*COORD*/);
}
示例2: writeArc
/** writes a arc segment value.
*/
static void writeArc(XmlWriter &out, IomObject &obj)
{
/*
object: ARC
C1
103.0
C2
403.0
A1
104.0
A2
404.0
<COORD><C1>103.0</C1><C2>403.0</C2><A1>104.0</A1><A2>404.0</A2></COORD>
*/
out.startElement(tags::get_ARC(),0,0);
out.startElement(tags::get_C1(),0,0);
const XMLCh *c1=obj->getAttrPrim(tags::get_C1(),0);
out.characters(c1);
out.endElement(/*C1*/);
const XMLCh *c2=obj->getAttrPrim(tags::get_C2(),0);
out.startElement(tags::get_C2(),0,0);
out.characters(c2);
out.endElement(/*C2*/);
const XMLCh *c3=obj->getAttrPrim(tags::get_C3(),0);
if(c3){
out.startElement(tags::get_C3(),0,0);
out.characters(c3);
out.endElement(/*C3*/);
}
const XMLCh *a1=obj->getAttrPrim(tags::get_A1(),0);
out.characters(a1);
out.endElement(/*A1*/);
const XMLCh *a2=obj->getAttrPrim(tags::get_A2(),0);
out.startElement(tags::get_A2(),0,0);
out.characters(a2);
out.endElement(/*A2*/);
const XMLCh *r=obj->getAttrPrim(tags::get_R(),0);
if(r){
out.startElement(tags::get_R(),0,0);
out.characters(r);
out.endElement(/*R*/);
}
out.endElement(/*ARC*/);
}
示例3: save
/** write all baskets to an xml file.
*/
int iom_file::save()
{
// build class/attribute list
if(ilibasket.isNull()){
iom_issueerr("model required to save data");
return IOM_ERR_ILLEGALSTATE;
}
buildTagList();
// read rest of file (before we overwrite it!)
IomIterator bi=new iom_iterator(this);
while(!bi->next_basket().isNull()){
; // empty
}
// open file for write
XmlWriter out;
int ind=0;
out.open(filename);out.printNewLine();
// write header
XmlWrtAttr trsfAttr[]={XmlWrtAttr(ustrings::get_xmlns(),ustrings::get_NS_INTERLIS22())};
out.printIndent(ind);
out.startElement(tags::get_TRANSFER(),trsfAttr,sizeof(trsfAttr)/sizeof(trsfAttr[0]));out.printNewLine();
{
ind++;
out.printIndent(ind);
XStr version("2.2");
XmlWrtAttr headAttr[]={
XmlWrtAttr(ustrings::get_VERSION(),version.unicodeForm())
,XmlWrtAttr(ustrings::get_SENDER(),getHeadSecSender())
};
out.startElement(tags::get_HEADERSECTION(),headAttr,sizeof(headAttr)/sizeof(headAttr[0]));out.printNewLine();
{
ind++;
out.printIndent(ind);
out.startElement(tags::get_ALIAS(),0,0);out.printNewLine();
{
ind++;
ind--;
}
out.printIndent(ind);
out.endElement(/*ALIAS*/);out.printNewLine();
out.printIndent(ind);
out.startElement(tags::get_COMMENT(),0,0);
out.characters(getHeadSecComment());
out.endElement(/*COMMENT*/);out.printNewLine();
ind--;
}
out.printIndent(ind);
out.endElement(/*HEADERSECTION*/);out.printNewLine();
ind--;
}
// write DATASECTION
{
ind++;
out.printIndent(ind);
out.startElement(tags::get_DATASECTION(),0,0);out.printNewLine();
{
ind++;
// write all baskets
for(std::vector<IomBasket>::size_type basketi=0;basketi<basketv.size();basketi++){
IomBasket basket=basketv.at(basketi);
const XMLCh *topics=basket->getTopics();
const XMLCh *kind=encodeBasketKind(basket->getKind());
const XMLCh *startstate=basket->getKind()!=IOM_FULL ? basket->getStartState() : 0;
const XMLCh *endstate=basket->getKind()!=IOM_FULL ? basket->getEndState() : 0;
const XMLCh *consistency=encodeConsistency(basket->getConsistency());
XmlWrtAttr basketAttr[]={
XmlWrtAttr(ustrings::get_BID(),basket->getOid(),true)
,XmlWrtAttr(topics ? ustrings::get_TOPICS():0,topics)
,XmlWrtAttr(kind ? ustrings::get_KIND():0 ,kind)
,XmlWrtAttr(startstate ? ustrings::get_STARTSTATE():0,startstate)
,XmlWrtAttr(endstate ? ustrings::get_ENDSTATE():0,endstate)
,XmlWrtAttr(consistency ? ustrings::get_CONSISTENCY():0,consistency)
};
out.printIndent(ind);
if(basket->getTag()==0){
iom_issueerr("basket requires a TOPIC name");
return IOM_ERR_ILLEGALSTATE;
}
out.startElement(basket->getTag(),basketAttr,sizeof(basketAttr)/sizeof(basketAttr[0]));out.printNewLine();
{
ind++;
// write all objects
IomIterator obji=new iom_iterator(basket);
IomObject obj=obji->next_object();
while(!obj.isNull()){
out.printIndent(ind);
const XMLCh *bid=obj->getBid();
const XMLCh *ops=encodeOperation(obj->getOperation());
const XMLCh *consistency=encodeConsistency(basket->getConsistency());
XmlWrtAttr objAttr[]={
XmlWrtAttr(ustrings::get_TID(),obj->getOid(),true)
,XmlWrtAttr(bid ? ustrings::get_BID():0,bid,true)
,XmlWrtAttr(ops ? ustrings::get_OPERATION():0 ,ops)
//.........这里部分代码省略.........
示例4: writeAttr
void iom_file::writeAttr(XmlWriter &out, IomObject &obj,int attr)
{
int valueCount=obj->getAttrValueCount(attr);
if(valueCount>0){
const XMLCh *val=obj->getAttrPrim(attr,0);
// not a primitive?
if(!val){
IomObject child=obj->getAttrObj(attr,0);
// some special cases
if(child->getTag()==tags::get_COORD()){
// COORD
out.startElement(attr,0,0);
writeCoord(out,child);
out.endElement(/*attr*/);
if(valueCount>1){
iom_issueerr("max one COORD value allowed");
}
}else if(child->getTag()==tags::get_POLYLINE()){
// POLYLINE
out.startElement(attr,0,0);
writePolyline(out,child,false);
out.endElement(/*attr*/);
if(valueCount>1){
iom_issueerr("max one POLYLINE value allowed");
}
}else if(child->getTag()==tags::get_MULTISURFACE()){
// MULTISURFACE
out.startElement(attr,0,0);
writeSurface(out,child);
out.endElement(/*attr*/);
if(valueCount>1){
iom_issueerr("max one MULTISURFACE value allowed");
}
}else{
// normal case
const XMLCh *ref=child->getRefOid();
bool isRef= ref ? true : false;
// Reference-attribute or Role or EmbeddedLink?
if(isRef){
const XMLCh *extref=0;
const XMLCh *bid=0;
XMLCh itoabuf[40];
const XMLCh *orderpos=0;
if(ref){
if(child->getRefOrderPos()>0){
XMLString::binToText( child->getRefOrderPos(),itoabuf,sizeof(itoabuf)-1,10);
orderpos=itoabuf;
}
}
bid=child->getRefBid();
if(bid){
extref=ref;
ref=0;
}
XmlWrtAttr refAttr[]={
XmlWrtAttr(ref ? ustrings::get_REF() :0, ref,true)
,XmlWrtAttr(extref ? ustrings::get_EXTREF() :0, extref,true)
,XmlWrtAttr(bid ? ustrings::get_BID() :0, bid,true)
,XmlWrtAttr(orderpos ? ustrings::get_ORDER_POS():0, orderpos)
};
out.startElement(attr,refAttr,sizeof(refAttr)/sizeof(refAttr[0]));
if(child->getAttrCount()>0){
out.startElement(child->getTag(),0,0);
writeAttrs(out,child);
out.endElement(/*child*/);
}
out.endElement(/*attr*/);
if(valueCount>1){
iom_issueerr("max one reference value allowed");
}
}else{
// struct
out.startElement(attr,0,0);
int valuei=0;
while(1){
out.startElement(child->getTag(),0,0);
writeAttrs(out,child);
out.endElement(/*child*/);
valuei++;
if(valuei>=valueCount){
break;
}
child=obj->getAttrObj(attr,valuei);
}
out.endElement(/*attr*/);
}
}
}else{
out.startElement(attr,0,0);
out.characters(val);
out.endElement(/*attr*/);
if(valueCount>1){
iom_issueerr("max one primitive-type value allowed");
}
}
}
}