![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| golfV |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 4.11.2007 Репутация: нет Всего: 1 |
Доброго времени суток!
есть такая проблемка. Надо удалить ChildNode делаю таким способом
он удаляет все ChildNode <MP> а вопрос состоит в том что как удалить ChildNode name которого начанается на 11 Выгладит он вот так
подскажите если кто знает? Зарание большое спасибо!!! Это сообщение отредактировал(а) golfV - 19.12.2009, 01:36 |
||||
|
|||||
| Dom |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 7.8.2005 Репутация: 1 Всего: 4 |
Как вариант - вести перебор всех узлов МР и проверять значение атрибута name.
При этом если проверка и удаление будет выполнятся в цикле то лучше делать так
|
|||
|
||||
| golfV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 4.11.2007 Репутация: нет Всего: 1 |
попробую так сделать, а вот такой вопрос как проверить что name начинается на 11, потому что писать каждый номер будет очень неудобно так как их очень много.
|
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
P.S. С индексами надо смотреть, непонятно где там есть пробелы. |
|||
|
||||
| Dom |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 7.8.2005 Репутация: 1 Всего: 4 |
Или через
|
|||
|
||||
| golfV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 4.11.2007 Репутация: нет Всего: 1 |
а можно немного подробнее как воспользоваться методом Pos или StrToInt? пробую пробую что то неполучается, проходит без ошибок но ничего неудаляет.
|
|||
|
||||
| Dom |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 7.8.2005 Репутация: 1 Всего: 4 |
Выложи код цикла в котором идет проверка и удаление
|
|||
|
||||
| golfV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 4.11.2007 Репутация: нет Всего: 1 |
вот так делаю, он удаляет но только не все, первый раз запустиш удалит один нод с именем на 11, второй раз запустиш удалит еще один, почему так происходит непонимаю Это сообщение отредактировал(а) golfV - 20.12.2009, 17:20 |
|||
|
||||
| Dom |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 7.8.2005 Репутация: 1 Всего: 4 |
А ничего что в объявлении цикла используется XMLDoc, а при проверке и удалении XMLCri? Это не разные вещи?
И пользуйся пошаговой отладкой F8, F7, смотри какие значения принимают твои переменные и сразу будет понятно что не так. Возможно что XMLDoc.DocumentElement.ChildNodes.Count равен нулю. И еще раз повторюсь, веди поиск с конца - от последнего элемента до нулевого. |
|||
|
||||
| golfV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 4.11.2007 Репутация: нет Всего: 1 |
XMLDoc и XMLCri там одинаковое количество нодов, поэтому это некак неможет влиять
|
|||
|
||||
| Dom |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 7.8.2005 Репутация: 1 Всего: 4 |
Используется проход по одному документу, чтобы проверить и удалить что-то в другом. После удаления узла счетчик Count уменьшается на единицу например, и смещаются индексы всех остальных узлов.
Пройди пошагово этот цикл и посмотри как он перебирает узлы, какие и в какой последовательности и чему равна переменная Name на каждом шаге. Вообще странно что AV не выскакивает. Или вот еще возможная причина - если перед 11 есть пробел, то результат будет уже не 0. В пошаговом режиме посмотри какие значения возвращает эта функция. |
|||
|
||||
| golfV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 199 Регистрация: 4.11.2007 Репутация: нет Всего: 1 |
Все заработало. Dom, сделал проверку циклом как ты посоветовал
сразу заработало! Большое спасибо! Это сообщение отредактировал(а) golfV - 21.12.2009, 14:05 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |