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


C++ buffer::format方法代码示例

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


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

示例1: to_string

bool xml_document::to_string(buffer& buf, bool pretty_print, const struct node* node, unsigned depth) const
{
	do {
		if (pretty_print) {
			// If not the first node...
			if (node != _M_nodes) {
				if (!buf.append("\r\n", 2)) {
					return false;
				}
			}
		}

		if (!node_to_string(buf, pretty_print, node, depth)) {
			return false;
		}

		if (node->child != -1) {
			if (!to_string(buf, pretty_print, &(_M_nodes[node->child]), depth + 1)) {
				return false;
			}

			if (pretty_print) {
				if (!buf.append("\r\n", 2)) {
					return false;
				}

				for (unsigned i = 0; i < depth; i++) {
					if (!buf.append('\t')) {
						return false;
					}
				}
			}

			if (!buf.format("</%.*s>", node->len, _M_buf.data() + node->text)) {
				return false;
			}
		}

		if (node->next < 0) {
			return true;
		}

		node = &(_M_nodes[node->next]);
	} while (true);
}
开发者ID:guidoreina,项目名称:gweb-plusplus,代码行数:45,代码来源:xml_document.cpp

示例2: node_to_string

bool xml_document::node_to_string(buffer& buf, bool pretty_print, const struct node* node, unsigned depth) const
{
	if (pretty_print) {
		for (unsigned i = 0; i < depth; i++) {
			if (!buf.append('\t')) {
				return false;
			}
		}
	}

	switch (node->type) {
		case DOCTYPE_NODE:
			return buf.format("<!DOCTYPE %.*s>", node->len, _M_buf.data() + node->text);
		case PROCESSING_INSTRUCTION_NODE:
			return buf.format("<?%.*s?>", node->len, _M_buf.data() + node->text);
		case COMMENT_NODE:
			return buf.format("<!-- %.*s -->", node->len, _M_buf.data() + node->text);
		case ELEMENT_NODE:
			if (!buf.format("<%.*s", node->len, _M_buf.data() + node->text)) {
				return false;
			}

			if (node->attributes) {
				const char* name;
				size_t namelen;
				const char* value;
				size_t valuelen;

				for (size_t i = 0; node->attributes->get(i, name, namelen, value, valuelen); i++) {
					char quotes = (memchr(value, '"', valuelen)) ? '\'' : '"';
					if (!buf.format(" %.*s=%c%.*s%c", namelen, name, quotes, valuelen, value, quotes)) {
						return false;
					}
				}
			}

			if (node->child > 0) {
				return buf.append('>');
			} else {
				return buf.append("/>", 2);
			}

		case TEXT_NODE:
			return buf.format("%.*s", node->len, _M_buf.data() + node->text);
		default:
			return false;
	}
}
开发者ID:guidoreina,项目名称:gweb-plusplus,代码行数:48,代码来源:xml_document.cpp


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