本文整理汇总了C++中Xml::attach方法的典型用法代码示例。如果您正苦于以下问题:C++ Xml::attach方法的具体用法?C++ Xml::attach怎么用?C++ Xml::attach使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Xml
的用法示例。
在下文中一共展示了Xml::attach方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parse
Xml Xml::parse( const char *src , int& len , bool& p_error ) {
if( src == NULL )
return( Xml() );
// parse
TiXmlDocument *doc = new TiXmlDocument();
Xml xml;
try {
const char *res = doc -> Parse( src );
if( res != NULL ) {
p_error = false;
len = res - src;
xml.attach( doc , doc -> FirstChildElement() );
}
}
catch( RuntimeException& e ) {
Logger log;
log.attachRoot();
log.printStack( e );
p_error = true;
len = 0;
}
return( xml );
}
示例2: create
Xml Xml::create( const char *contentName ) {
TiXmlDocument *doc = new TiXmlDocument();
TiXmlElement *top = new TiXmlElement( contentName );
doc -> LinkEndChild( top );
Xml xml;
xml.attach( doc , top );
return( xml );
}
示例3: getNextChild
Xml Xml::getNextChild( String name ) {
ASSERTMSG( node != NULL , name + " node parent is null" );
TiXmlElement *xml = ( TiXmlElement * )node;
TiXmlElement *xmlChild = xml -> NextSiblingElement( name );
Xml item;
item.attach( doc , xmlChild );
return( item );
}
示例4: addElement
Xml Xml::addElement( String name ) {
ASSERTMSG( node != NULL , name + " node parent is null" );
TiXmlNode *xml = ( TiXmlNode * )node;
TiXmlElement *xmlProp = new TiXmlElement( name );
xml -> LinkEndChild( xmlProp );
Xml ret;
ret.attach( doc , xmlProp );
return( ret );
}
示例5: load
Xml Xml::load( const char *path ) {
TiXmlDocument *doc = new TiXmlDocument( path );
if( !doc -> LoadFile() ) {
String err = String( "loadXml: cannot load root configuration from path=" ) + path;
delete doc;
throw RuntimeError( err );
}
Xml xml;
xml.attach( doc , doc -> FirstChildElement() );
return( xml );
}
示例6: addTextElement
Xml Xml::addTextElement( String name , String value ) {
ASSERTMSG( node != NULL , name + " node parent is null" );
TiXmlElement *xml = ( TiXmlElement * )node;
TiXmlElement *xmlElement = new TiXmlElement( name );
xml -> LinkEndChild( xmlElement );
TiXmlText *xmlValue = new TiXmlText( value );
xmlElement -> LinkEndChild( xmlValue );
Xml ret;
ret.attach( doc , xmlValue );
return( ret );
}
示例7: getChildNode
Xml Xml::getChildNode( String s ) {
ASSERT( node != NULL );
TiXmlElement *xml = ( TiXmlElement * )node;
TiXmlElement *xmlChild = NULL;
try {
xmlChild = xml -> FirstChildElement( s );
}
catch( ... ) {
// ignore - handle by null value returned
}
Xml x;
x.attach( doc , xmlChild );
return( x );
}
示例8: getFirstChild
Xml Xml::getFirstChild( String name ) {
ASSERTMSG( node != NULL , name + " node parent is null" );
TiXmlElement *xml = ( TiXmlElement * )node;
TiXmlElement *xmlChild = NULL;
try {
xmlChild = xml -> FirstChildElement( name );
}
catch( ... ) {
// ignore - handle by null value returned
}
Xml item;
item.attach( doc , xmlChild );
return( item );
}
示例9: getParentNode
Xml Xml::getParentNode() {
ASSERT( node != NULL );
TiXmlNode *xml = ( TiXmlNode * )node;
TiXmlNode *xmlParent = NULL;
try {
xmlParent = xml -> Parent();
if( xmlParent -> Type() == TiXmlNode::DOCUMENT )
xmlParent = NULL;
}
catch( ... ) {
// ignore - handle by null value returned
}
Xml x;
x.attach( doc , xmlParent );
return( x );
}
示例10: read
Xml Xml::read( const char *data , const char *contentName ) {
TiXmlDocument *doc = new TiXmlDocument();
const char *p = doc -> Parse( data );
if( doc -> Error() ) {
delete doc;
String err = "XML message cannot be read";
throw RuntimeError( err );
}
// verify trailing data are only spaces
if( p != NULL ) {
char c;
while( c = *p++ )
if( !( c == ' ' || c == '\t' || c == '\v' || c == '\n' || c == '\r' ) )
break;
if( c ) {
delete doc;
String err = "XML message is malformed - data found behind message: ";
err += data;
throw RuntimeError( err );
}
}
// verify message has given child element
try {
TiXmlElement *item = doc -> FirstChildElement( contentName );
if( item != NULL )
{
Xml xml;
xml.attach( doc , item );
return( xml );
}
}
catch( ... ) {
// ignore - generate own exception instead
}
delete doc;
String err = String( "XML message is malformed - cannot find required top item: " ) + contentName;
throw RuntimeError( err );
}