void BulletMLParserYggdrasil::start_element(yggdrasil::ygg_node element) {
    BulletMLNode* xmlNode = addContent(trimString(element.get_name()));

	if (xmlNode->getName() != BulletMLNode::bulletml) {
		MyAttributes mattr;
		for (ygg_iterator ite = element["@*"].begin(); ite.is_not_end(); ++ite)
		{
			mattr.push_back(trimString(ite->get_name()));
			mattr.push_back(trimString(ite->get_value()));
		}
		if (!mattr.empty()) addAttribute(mattr, xmlNode);

		if (curNode_ != 0) curNode_->addChild(xmlNode);
	}
	curNode_ = xmlNode;
}
示例#2
0
void BulletMLParserTinyXML::translateNode(TiXmlNode* node) {
    TiXmlElement* elem = node->ToElement();
    assert(elem != 0);

    BulletMLNode* xmlNode = addContent(elem->Value());

    if (xmlNode->getName() == BulletMLNode::bulletml) {
        TiXmlAttribute* attr;
        for (attr = elem->FirstAttribute(); attr; attr = attr->Next()) {
            if (attr->Value() == "horizontal") setHorizontal();
        }
    }
    else {
        MyAttributes mattr;
        TiXmlAttribute* attr;
        for (attr = elem->FirstAttribute(); attr; attr = attr->Next()) {
            mattr.push_back(attr->Name());
            mattr.push_back(attr->Value());
        }
        addAttribute(mattr, xmlNode);
        if (curNode_ != 0) curNode_->addChild(xmlNode);
    }
    curNode_ = xmlNode;
}