Название: удаление нодов xml Отправлено: stasuss от Июнь 26, 2012, 09:43 Всем привет.
недавно начал таки переход на кьют. решил вот переписать программку на эту библиотеку и столкнулся с проблемкой. никак не могу заставить программу удалять ноды из dom дерева. имеется файлик типа такой: Код: <parent> и вот этот текст надо сравнивать со списочком, загруженым в QSet. при несовпадении удалять ноду не буду приводить полный код ибо он вполне нормальный, приведу код удаления Код: parc=parc.parentNode().removeChild(parc).toElement(); а ну и еще перебор детишек у меня происходит с помощью такого for: Код: for (QDomElement parc=block.firstChildElement("Parcels").firstChild().toElement(); !parc.isNull(); parc=parc.nextSibling().toElement()) не смотрите на то что это подразумевает что файл выглядит не так как я его описал) смысл в этом таким образом я имею то что при удалении что то происходит с указателем на текущую ноду и цикл вылетает.. а вот что происходит не пойму, поидее функция удаления ноды должна возвращать указатель на предыдущую ноду... кто нибудь сталкивался? Название: Re: удаление нодов xml Отправлено: Serr500 от Июнь 26, 2012, 09:49 поидее функция удаления ноды должна возвращать указатель на предыдущую ноду... Цитировать QDomNode QDomNode::removeChild ( const QDomNode & oldChild ) Про предыдущую сказано тут где? Новую ссылку на неё же саму метод этот возвращает.Removes oldChild from the list of children. oldChild must be a direct child of this node. Returns a new reference to oldChild on success or a null node on failure. Название: Re: удаление нодов xml Отправлено: stasuss от Июнь 26, 2012, 09:52 тогда я чего то не понимаю... что значит новую ссылку на ее же саму, если ее удалили?
а как мне тогда цикл продолжить с текущей позиции? гуру qt xml помогите( Название: Re: удаление нодов xml Отправлено: mutineer от Июнь 26, 2012, 10:10 тогда я чего то не понимаю... что значит новую ссылку на ее же саму, если ее удалили? а как мне тогда цикл продолжить с текущей позиции? гуру qt xml помогите( Удалили ноду из дерева, но сама нода все еще жива, хоть и живет вне старого дерева. Вот на эту оторванную ноду тебе ссылку и возвращают Название: Re: удаление нодов xml Отправлено: stasuss от Июнь 26, 2012, 10:12 а как все таки цикл продолжить? создать копию текущей ноды перед удалением и вызвать метод previousSibling()?
Название: Re: удаление нодов xml Отправлено: mutineer от Июнь 26, 2012, 10:28 Решение в лоб - в цикле ноды не удаляешь, а собираешь в контейнер ссылки на них. А потом вне цикла все накопившиеся удаляешь
Название: Re: удаление нодов xml Отправлено: stasuss от Июнь 26, 2012, 10:31 блин. ну об этом я тоже думал) а в цикле что никак?
|