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


C++ TreeIterator::getValueOfAttribute方法代码示例

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


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

示例1: saveTree

void XmlTreeSerializer::saveTree(const TreeIterator& treeIterator, const OutputStream& outputStream, int indent, const NumberFormat* numberFormat)
{
	TreeIterator iterator = treeIterator;
	if (iterator.hasMetaTag(NON_SERIALIZEABLE) == false)
	{
		if (iterator.isAttribute() == true)
		{
			iterator.moveToParent();
		}

		indentLine(outputStream, indent);
		String nodeName = iterator.getName();
		if (nodeName.findFirst("::") != String::END)
		{
			nodeName.searchAndReplace("::", ":");
		}
		outputStream << '<' << nodeName;

		bool hasData = false;
		const int attributeCount = iterator.getAttributeCount();
		for (int i = 0; i < attributeCount; ++i)
		{
			iterator.moveToAttribute(i);

			if (iterator.hasMetaTag(NON_SERIALIZEABLE) == false && iterator.isDefaultValue() == false)
			{
				if (iterator.getName() == "data")
				{
					hasData = true;
				}
				else
				{
					const String value = iterator.getValue();
					const char8 quote = value.findFirst('\'') == String::END ? '\'' : '"';
					outputStream << ' ' << iterator.getName() << '=' << quote << value << quote;
				}
			}

			iterator.moveToParent();
		}

		const int childCount = iterator.getChildNodeCount();
		if (childCount == 0 && hasData == false)
		{
			outputStream << " />" << newLine;
		}
		else
		{
			outputStream << '>' << newLine;
			if (hasData == true)
			{
				outputStream << iterator.getValueOfAttribute("data");
			}
			for (int i = 0; i < childCount; ++i)
			{
				iterator.moveToChildNode(i);
				saveTree(iterator, outputStream, indent+1, numberFormat);
				iterator.moveToParent();
			}
			indentLine(outputStream, indent);
			outputStream << "</" << nodeName << '>' << newLine;
		}
	}
}
开发者ID:luowycn,项目名称:BaseLib,代码行数:64,代码来源:XmlTreeSerializer.cpp


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