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


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

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


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

示例1: onWrite

void CfgDrivers::onWrite()
{
   XMLElement *xel = config->getElement();

   while (xel->GetChildrenCount() > 0)
   {
      xel->RemChild(xel->GetChild(0));
   }

   for (int32 i=0; i<drivers.Count(); i++)
   {
      XMLElement *el = new XMLElement(Cfg_Driver, 0);
      el->AddAttribute(Cfg_DriverHarmful, drivers[i]->harmful ? 1 : 0);
      el->AddAttribute(Cfg_DriverName,    drivers[i]->driver);
      xel->AddChild(el);
   }
}
开发者ID:luciodra,项目名称:amiga-fryingpan.app,代码行数:17,代码来源:CfgDrivers.cpp

示例2: ParseTokens

void ParseTokens(vector<Token>& tokens, XMLDocument& outDoc){
	Stack<Token> tokenStack;
	Stack<XMLElement> elementStack;
	bool inTag = false;

	for(auto iter = tokens.begin(); iter != tokens.end(); iter++){
		Token token = *iter;
		//cout << "Parsing token: |" << token << "|" << endl;
		if(token == "<"){
			inTag = true;
			tokenStack.Push(token);
		}
		else if(token == "/"){
			if(tokenStack.Top() == "<"){
				//Add the element to the doc
				XMLElement elem = elementStack.Pop();
				if(elementStack.count == 0){
					outDoc.contents.push_back(elem);
				}
				else{
					elementStack.Top().children.push_back(elem);
				}
				
				iter++;
				iter++;
			}
			else{
				tokenStack.Push(token);
			}
		}
		else if(token == ">"){
			inTag = false;
			bool startList = true;
			if(tokenStack.Top() == "/"){
				startList = false;
				tokenStack.Pop();
			}

			Token currToken = tokenStack.Pop();
			XMLAttribute attr;
			attr.data = attr.name = "";
			bool gotData = false;
			while(currToken != "<"){
				if(currToken == "="){
					//do nothing
				}
				else if(!gotData){
					attr.data = currToken.ToString();
					gotData = true;
				}
				else{
					attr.name = currToken.ToString();
					elementStack.Top().AddAttribute(attr.name, attr.data);
					attr.data = attr.name = "";
					gotData = false;
				}
				currToken = tokenStack.Pop();
			}

			if(!startList){
				XMLElement elem = elementStack.Pop();
				if(elementStack.count == 0){
					outDoc.contents.push_back(elem);
				}
				else{
					elementStack.Top().children.push_back(elem);
				}
			}
		}
		else{
			if(!inTag){
				XMLElement elem;
				elem.name = "__plaintext__";
				elem.AddAttribute("val", token.ToString());
				if(elementStack.count == 0){
					outDoc.contents.push_back(elem);
				}
				else{
					elementStack.Top().children.push_back(elem);
				}
				continue;
			}
			else if(tokenStack.Top() == "<"){
				XMLElement elem;
				elem.name = token.ToString();
				//cout << "Pushing to element stack: " << token << endl;
				elementStack.Push(elem);
			}
			//cout << "Pushing token: "<< token << endl;
			tokenStack.Push(token);
		}
	}
}
开发者ID:Benjins,项目名称:my-engine,代码行数:93,代码来源:simple-xml.cpp


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