Пример #1
0
bool XmlConfigurationConverter::updateDocument(XmlDocument* document, std::string dtd,
		const Version& version, std::string rootElementName) {

	// update root element name
	XmlElement* root = document->getRootElement();
	if (!root) {
		return false;
	} // if
	root->setName(rootElementName);

	// update version entry in root element
	if (root->hasAttribute("version")) {
		root->getAttribute("version")->setValue(version.toString());
	} // if
	else {
		XmlAttribute* versionAttribute = new XmlAttribute("version", version.toString());
		root->addAttribute(versionAttribute);
	} // else

	// update dtd reference
	XmlDtdReference* dtdRef = document->getDtd();
	if (!dtdRef) {
		dtdRef = new XmlDtdReference(rootElementName, dtd);
		document->setDtd(dtdRef);
	} else {
		dtdRef->setName(rootElementName);
		dtdRef->setDtd(dtd);
	} // else

	return true;
} // updateRootElement
Пример #2
0
XmlDoc & XmlDoc::seek(const QString & chemin, bool newElt, bool root)
{
    if(root) begin();
    bool controle = true;
    QList<QString> list(chemin.split("/"));
    for(QList<QString>::const_iterator i = list.cbegin(); controle && i != list.cend(); ++i)
    {
        QList< TreeItem<XmlElement> *>::const_iterator j = childs().cbegin();
        while(j != childs().cend() && (*j)->data().name() != *i) ++j;
        if(j == childs().cend())
        {
            controle = false;
            if(newElt)
            {
                XmlElement elt;
                for(; i != list.cend(); ++i)
                {
                    elt.setName(*i);
                    addChild(elt);
                }
            }
            else
            {
                m_i = m_root;
            }
        }
        else
        {
            m_i = *j;
        }
    }
    return *this;
}