本文整理汇总了C++中XmlWriter::start_element方法的典型用法代码示例。如果您正苦于以下问题:C++ XmlWriter::start_element方法的具体用法?C++ XmlWriter::start_element怎么用?C++ XmlWriter::start_element使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XmlWriter
的用法示例。
在下文中一共展示了XmlWriter::start_element方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: serielize
void XmlElement::serielize(XmlWriter &writer, int tab) const
{
// name
for (int i = 0; i < tab; ++i)
writer.write_text("\t");
writer.start_element(_name.c_str());
// attributes
for (const_attr_iter_t iter = _attrs.begin(), end = _attrs.end();
iter != end; ++iter)
{
writer.write_attribute(iter->first.c_str(), iter->second.c_str());
}
// text
bool has_child = false;
if (!_text.empty())
{
if (tab >= 0)
{
std::string text;
trim(_text.c_str(), &text);
if (!text.empty())
{
writer.write_text("\n");
for (int i = 0; i < tab + 1; ++i)
writer.write_text("\t");
writer.write_text(text.c_str());
has_child = true;
}
}
else
{
writer.write_text(_text.c_str());
has_child = true;
}
}
// children and comments
const size_t comments_size = _comments.size();
size_t comment_pos = 0;
for (size_t i = 0, csize = _children.size(); i < csize; ++i)
{
// serialize comment
while (comment_pos < comments_size && _comments.at(comment_pos).pos <= i)
{
if (tab >= 0)
{
writer.write_text("\n");
for (int j = 0; j < tab + 1; ++j)
writer.write_text("\t");
}
writer.write_comment(_comments.at(comment_pos).text.c_str());
++comment_pos;
has_child = true;
}
// children element
rc_ptr<XmlElement> c = _children.at(i);
if (c.is_null())
continue;
if (tab >= 0)
writer.write_text("\n");
c->serielize(writer, tab >= 0 ? tab + 1 : tab);
has_child = true;
}
// tail comments
while (comment_pos < comments_size)
{
if (tab >= 0)
{
writer.write_text("\n");
for (int j = 0; j < tab + 1; ++j)
writer.write_text("\t");
}
writer.write_comment(_comments.at(comment_pos).text.c_str());
++comment_pos;
has_child = true;
}
// finish
if (has_child && tab >= 0)
{
writer.write_text("\n");
for (int i = 0; i < tab; ++i)
writer.write_text("\t");
}
writer.end_element();
}