Название: Затупил. DOM в Qt. Не могу рекурсивно перебрать QDomElement Отправлено: xintrea от Март 19, 2016, 09:53 У меня в памяти есть QDomDocument. Его нужно сохранить на диск. Перед сохранением надо атрибуты некоторых элементов изменить (расшифровать). Элементы вложены, необходима рекурсия. DOM-элементы должны меняться (менять свои атрибуты) внутри рекурсии.
Примерный код такой: Код: void KnowTreeModel::saveDecryptDoc(QDomDocument &doc) Проблема в том, что рекурсивная функция должна работать через QDomElement (долго объяснять почему, проект большой). А я не могу понять, как у QDomElement получить дочерние QDomElement. У QDomElement есть только возможность получить QDomNodeList, но тип у полученных элементов - QDomNode. А у этого QDomNode невозможно получить указатель на QDomElement, можно только получить новый QDomElement через метод toElement(). (Блин, вообще-то мне нужна ссылка на QDomElement, но я уже сломал мосг). В общем, вопрос в следующем: как у QDomElement перебрать дочерние QDomElement и что-нибудь в них изменить? Название: Re: Затупил. DOM в Qt. Не могу рекурсивно перебрать QDomElement Отправлено: Old от Март 19, 2016, 10:02 Попробуйте использовать:
QDomElement QDomNode::firstChildElement(const QString & tagName = QString()) const QDomElement QDomNode::nextSiblingElement(const QString & tagName = QString()) const Но не факт, что получиться. Возможно придется получать копию элемента, менять атрибут и добавлять ноывй элемент в документ, а старый удалять. |