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


C++ XMLNode::AddField方法代码示例

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


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

示例1: Copy

	void XMLNode::Copy(XMLNode **new_node)
	{
		XMLNode *newroot = new XMLNode();
		newroot->name = name;
		newroot->depth = depth;
	
		// pridame rovnake polia
		list<XMLField*>::iterator	itf;
		for (itf=fields.begin(); itf!=fields.end(); itf++) {
			XMLField *f = *itf;
			newroot->AddField(f->key, f->value);
		}
		
		// a este aj kopie nodov
		list<XMLNode*>::iterator	itn;
		for (itn=nodes.begin(); itn!=nodes.end(); itn++) {
			XMLNode *n = *itn;
			XMLNode *newnode = NULL;
			
			// novu kopiu
			n->Copy(&newnode);
			newroot->AddNode(newnode);						
		}
	}
开发者ID:EnigmaIndustries,项目名称:graph-studio-next,代码行数:24,代码来源:xml_parser.cpp

示例2: LoadFromXmlReader

	int XMLFile::LoadFromXmlReader(IXmlReader *reader)
	{
		XmlNodeType		type;
		int				depth = 0;
		LPCWSTR			text, value;
		HRESULT			hr;

		list<XMLNode*>	stack;	
		stack.push_back(root);

		while (reader->Read(&type) == NOERROR) {

			switch (type) {
			case XmlNodeType_Element:
				{
					BOOL	is_empty = reader->IsEmptyElement();

					XMLNode	*parent = stack.back();
					XMLNode	*current = new XMLNode();
					stack.push_back(current);

					// add a new node
					parent->AddNode(current);

					hr = reader->GetLocalName(&text, NULL);
					if (FAILED(hr)) return hr;
					current->name = CString(text);

					// load attributes
					while (true) {
						hr = reader->MoveToNextAttribute();
						if (hr != NOERROR) break;

						// read attribute name and value name
						hr = reader->GetLocalName(&text, NULL);
						if (FAILED(hr)) return hr;
						hr = reader->GetValue(&value, NULL);
						if (FAILED(hr)) return hr;

						CString	attr_name(text);
						CString	attr_value(value);

						current->AddField(attr_name, attr_value);
					}

					if (is_empty) {
						stack.pop_back();
					}
				}
				break;
			case XmlNodeType_EndElement:
				{
					stack.pop_back();
				}
				break;

			}

		}
		return 0;
	}
开发者ID:EnigmaIndustries,项目名称:graph-studio-next,代码行数:61,代码来源:xml_parser.cpp


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