当前位置: 首页>>代码示例>>C++>>正文


C++ XMLElement::GetChildren方法代码示例

本文整理汇总了C++中XMLElement::GetChildren方法的典型用法代码示例。如果您正苦于以下问题:C++ XMLElement::GetChildren方法的具体用法?C++ XMLElement::GetChildren怎么用?C++ XMLElement::GetChildren使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在XMLElement的用法示例。


在下文中一共展示了XMLElement::GetChildren方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: ProcessImagesLibraryXML

/// process images library
void TSRModelExporterXML::ProcessImagesLibraryXML( XMLElement* _pRootElement )
{
    XMLElement* pImagesLibrary = _pRootElement->FindElementZ( "library_images" );

    if ( pImagesLibrary )
    {
        for ( unsigned int i = 0; i < pImagesLibrary->GetChildrenNum(); i++ )
        {
            XMLElement* pCurrImageElement = pImagesLibrary->GetChildren()[ i ];
            if ( pCurrImageElement )
            {
                    m_XMLImages.push_back( pCurrImageElement );

                    XMLElement* pInitFromElement = pCurrImageElement->FindElementZ( "init_from" );

                    XMLElement* pRefElement = pInitFromElement->FindElementZ( "ref" );

                    string strTemp;
                    if ( pRefElement )
                    {
                        strTemp = pRefElement->GetContents()[ 0 ]->c;
                        TSRModelTexture newTwisterTexture;
                        memset( &newTwisterTexture, 0, sizeof( TSRModelTexture) ) ;
                        sscanf( strTemp.c_str(), "%s", newTwisterTexture );
                        m_TwisterImages.push_back( newTwisterTexture );
                    }
                    else
                    {
                        strTemp = pInitFromElement->GetContents()[ 0 ]->c;
                        TSRModelTexture newTwisterTexture;
                        memset( &newTwisterTexture, 0, sizeof( TSRModelTexture) ) ;
                        assert( ( strTemp.length() < 64 ) && "Texture filename is too long, consider using relative paths" );
                        if ( strTemp.length() >= 64 )
                        {
                            CookAssetError( "Texture filename is too long, consider using relative paths" );
                        }
                        sscanf( strTemp.c_str(), "%s", newTwisterTexture.m_Name );
                        m_TwisterImages.push_back( newTwisterTexture );
                    }
            }
        }
    }
    ExportModelTextures();
}
开发者ID:ShadyEM,项目名称:Twister3D,代码行数:45,代码来源:TSRModelExporterXML_Images.cpp

示例2: Parse

int EpiphanyXML::Parse()
{
	int nkids = 0;
	int i;
	XMLElement* root;
	XMLElement* child;
	//XMLElement* gchild;
	char buf[256];

	root = m_xml->GetRootElement();
	root->GetElementName(buf);
	if (strcmp(buf, "platform") ||
	    ExtractAttr(root, &m_platform->version, "version") ||
	    ExtractAttr(root, &m_platform->name, "name") ||
	    ExtractAttr(root, &m_platform->lib, "lib") ||
	    ExtractAttr(root, &m_platform->libinitargs, "libinitargs"))
	{
		return -1;
	}

	if (m_platform->version != 1)
	{
		return -2;
	}

	// process platform children
	nkids = root->GetChildrenNum();
	for (i=0; i < nkids; i++)
	{
		child = root->GetChildren()[i];
		child->GetElementName(buf);
		if (strcmp(buf, "chips") == 0)
		{
			ExtractChips(child);
		}
		else if (strcmp(buf, "external_memory") == 0)
		{
			ExtractExternalMemory(child);
		}
	}

	return 0;
}
开发者ID:alexrp,项目名称:epiphany-libs,代码行数:43,代码来源:epiphany_xml.cpp

示例3: OpenXML

int OpenXML(const char* XMLFile, char *attribute)
{
	XML* xml = new XML(XMLFile);
	XMLElement* root = xml->GetRootElement();
	unsigned int nodeCount = root->GetChildrenNum();
	XMLElement** node = root->GetChildren();

	for (unsigned int i = 0; i < nodeCount; i++) {
        unsigned int leafCount = node[i]->GetChildrenNum();
        XMLElement** leaf = node[i]->GetChildren();

        for (unsigned int j = 0; j < leafCount; j++) {
            XMLVariable* Att = leaf[j]->FindVariableZ(attribute);
            if (Att) {
                char Buf[255];
                Att->GetValue(Buf);
                printf("Attribute %s has value %s\n", attribute, Buf);
            }
        }
	}
	delete xml;
	return 0;
}
开发者ID:Megnus,项目名称:BinaryFileParser,代码行数:23,代码来源:main.cpp

示例4: main

int main()
 {
 OleInitialize(0);
 char* f1 = "http://www.turboirc.com/xml/sample1.xml";
 char* f2 = ".\\sample2.xml";

 XML* x = 0;

 // Load from file or url
 FILE* fp = fopen(f1,"rb");
 if (fp)
	 {
	 // Load from file
	 fclose(fp);
	 x = new XML(f1);
	 }
 else
	 {
	 // Load from url
	 x = new XML(f1,XML_LOAD_MODE_URL);
	 }

 // Parse status check
 int iPS = x->ParseStatus(); // 0 OK , 1 Header warning (not fatal) , 2 Error in parse (fatal)
 bool iTT = x->IntegrityTest(); // TRUE OK
 if (iPS == 2 || iTT == false)
	 {
	 fprintf(stderr,"Error: XML file %s is corrupt (or not a XML file).\r\n\r\n",f1);
	 delete x;
	 return 0;
	 }

 // Sample export to stdout
 x->Export(stdout,XML_SAVE_MODE_ZERO);


 // Sample XML functions
 fprintf(stdout,"\r\n\r\n---------- XML test ----------\r\n");
 XML_VERSION_INFO xI = {0};
 x->Version(&xI);
 fprintf(stdout,"XML version: %u.%u (%s)\r\n",xI.VersionHigh,xI.VersionLow,xI.RDate);
 int m1 = x->MemoryUsage();
 x->CompressMemory();
 int m2 = x->MemoryUsage();
 fprintf(stdout,"Memory used before/after compression: %u / %u bytes.\r\n",m1,m2);
 fprintf(stdout,"XML header: %s\r\n",x->GetHeader()->operator const char *());

 // Sample XMLElement functions
 fprintf(stdout,"\r\n\r\n---------- XMLElement test ----------\r\n");
 XMLElement* r = x->GetRootElement();
 int nC = r->GetChildrenNum();
 fprintf(stdout,"Root element has %u children.\r\n",nC);
 for(int i = 0 ; i < nC ; i++)
	 {
	 XMLElement* ch = r->GetChildren()[i];
	 int nV = ch->GetVariableNum();
	 int nMaxElName = ch->GetElementName(0);
	 char* n = new char[nMaxElName + 1];
	 ch->GetElementName(n);

	 fprintf(stdout,"\t Child %u: Variables: %u , Name: %s\r\n",i,nV,n);
	 delete[] n;
	 }
 // Add a children to the end
 r->AddElement(new XMLElement(r,(char*)"<testel x=\"1\" />"));

 // Find this element by name
 XMLElement* el = r->FindElementZ("testel");
 if (!el)
	 fprintf(stderr,"Error, element not found!\r\n");
 else
	 {
	 // Add some variables
	 el->AddVariable(new XMLVariable("somename","somevalue"));
	 // Note that the new XMLVariable we added is now owned by el

	 // Export only this element
	 el->Export(stdout,1,XML_SAVE_MODE_ZERO); // this prints <testel somename="somevalue"/>
	 }

 // Find an element that may not exist, get its variable X that may not exist, get 
 // a default value of 0
 int v = r->FindElementZ("elx",true)->FindVariableZ("varx",true)->GetValueInt();
 // Set it to 5, set some more
 r->FindElementZ("elx",true)->FindVariableZ("varx",true)->SetValueInt(5);
 r->FindElementZ("elx",true)->FindVariableZ("varx2",true)->SetValueInt(10);
 // Printout it
 // This would print: <elx varx="5" varx2="10"/>
 r->FindElementZ("elx",true)->Export(stdout,1,XML_SAVE_MODE_ZERO);

 // Remove the var we just added
 int ix = r->FindElement("elx");
 if (ix != -1)
	 r->RemoveVariable(ix);

 // Other XMLElement functions
 r->Copy(); // Copy entire thing to windows clipboard

 XMLElement* nP = XML::Paste();
 if (nP)
//.........这里部分代码省略.........
开发者ID:visusnet,项目名称:Blobby-Warriors,代码行数:101,代码来源:xmltest.cpp


注:本文中的XMLElement::GetChildren方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。