本文整理汇总了C++中MeiElement::getDescendantsByName方法的典型用法代码示例。如果您正苦于以下问题:C++ MeiElement::getDescendantsByName方法的具体用法?C++ MeiElement::getDescendantsByName怎么用?C++ MeiElement::getDescendantsByName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MeiElement
的用法示例。
在下文中一共展示了MeiElement::getDescendantsByName方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MeiDocument
TEST(TestMeiElement, TestRemoveManyChildren) {
MeiDocument *doc = new MeiDocument();
MeiElement *mei = new MeiElement("mei");
MeiElement *sd1 = new MeiElement("staffDef");
MeiElement *sd2 = new MeiElement("staffDef");
MeiElement *sd3 = new MeiElement("staffDef");
MeiElement *sd4 = new MeiElement("staffDef");
MeiElement *sd5 = new MeiElement("staffDef");
MeiElement *sd6 = new MeiElement("staffDef");
doc->setRootElement(mei);
MeiElement *music = new mei::MeiElement("music");
MeiElement *scoreDef = new mei::MeiElement("scoreDef");
mei->addChild(music);
music->addChild(scoreDef);
scoreDef->addChild(sd1);
scoreDef->addChild(sd2);
scoreDef->addChild(sd3);
scoreDef->addChild(sd4);
scoreDef->addChild(sd5);
scoreDef->addChild(sd6);
sd1->addAttribute("n", "1");
sd2->addAttribute("n", "2");
sd3->addAttribute("n", "3");
sd4->addAttribute("n", "4");
sd5->addAttribute("n", "5");
sd6->addAttribute("n", "6");
vector<MeiElement*> scoreDefs = doc->getRootElement()->getDescendantsByName("scoreDef");
vector<MeiElement*> staffDefs = doc->getRootElement()->getDescendantsByName("staffDef");
for (vector<MeiElement*>::iterator iter = staffDefs.begin(); iter != staffDefs.end(); ++iter) {
if ((*iter)->getAttribute("n")->getValue() == "3" || (*iter)->getAttribute("n")->getValue() == "6") {
(*iter)->getParent()->removeChild((*iter));
}
}
ASSERT_EQ(4, music->getDescendantsByName("staffDef").size());
}