本文整理汇总了C++中xml::Node::next_sibling方法的典型用法代码示例。如果您正苦于以下问题:C++ Node::next_sibling方法的具体用法?C++ Node::next_sibling怎么用?C++ Node::next_sibling使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xml::Node
的用法示例。
在下文中一共展示了Node::next_sibling方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetFirstChildElement
//--------------------------------------------------
//--------------------------------------------------
XML::Node* GetFirstChildElement(const XML::Node* in_node, const std::string& in_name)
{
const s8* nameData = nullptr;
u32 nameSize = in_name.length();
if (nameSize > 0)
{
nameData = in_name.c_str();
}
XML::Node* child = in_node->first_node(nameData, nameSize);
if (child != nullptr && child->type() == rapidxml::node_type::node_element)
{
return child;
}
else if (child != nullptr)
{
XML::Node* sibling = child;
do
{
sibling = sibling->next_sibling(nameData, nameSize);
}
while(sibling != nullptr && sibling->type() != rapidxml::node_type::node_element);
return sibling;
}
return nullptr;
}
示例2:
FaerieAnimation::FaerieAnimation(Xml::Node* element)
{
_name = Xml::GetStringAttribute(element, "name");
_time = Xml::GetFloatAttribute(element, "time");
Xml::Node* keyFrameXml = element->first_node("keyFrame");
while (keyFrameXml != NULL) {
_keyFrames.push_back(FaerieFrame(keyFrameXml));
keyFrameXml = keyFrameXml->next_sibling("keyFrame");
}
CreateAnimationSplines();
}
示例3: Reread
void FaerieAnimationsCollection::Reread() {
Clear();
Xml::ReadDocument doc(_filename);
Xml::Node* rootNode = doc.first_node();
assert(rootNode != NULL);
Xml::Node* animationNode = rootNode->first_node("animation");
while (animationNode != NULL) {
FaerieAnimation* animation = new FaerieAnimation(animationNode);
std::string animationName = animation->GetName();
assert(_mapAnimations.find(animationName) == _mapAnimations.end());
_mapAnimations[animationName] = animation;
animationNode = animationNode->next_sibling("animation");
}
}
示例4: GetNextSiblingElement
//--------------------------------------------------
//--------------------------------------------------
XML::Node* GetNextSiblingElement(const XML::Node* in_node, const std::string& in_name)
{
const s8* nameData = nullptr;
u32 nameSize = in_name.length();
if (nameSize > 0)
{
nameData = in_name.c_str();
}
XML::Node* sibling = in_node->next_sibling(nameData, nameSize);
while (sibling != nullptr && sibling->type() != rapidxml::node_type::node_element)
{
sibling = sibling->next_sibling(nameData, nameSize);
}
return sibling;
}