|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.12.2011, 02:36 | #1 | ||
Веб-дизайнер
Форумчанин
Регистрация: 11.08.2011
Сообщений: 305
|
Перевод тэгов HTML в TreeView
Доброго времени суток.
Не подскажите как реализовать отображение html тэгов в TreeView, учитывая Parent и прочее (прямиком в соответствии с веб-документом)? Я начал делать такой алгоритм, но в нем есть одна большая неувязка: я регистрирую открытие тэга и при его закрытии добавляю узел в древо. Если все тэги закрывать один за другим то я получу правильную структуру древа, например: Код:
Цитата:
Код:
Цитата:
Ломаю над этим голову уже какой час... Спасибо огромное за любые полезные советы. |
||
27.12.2011, 03:01 | #2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> все верно - я отловил закрытие тэга BODY
что ж тут верного, если тэг А открыт до закрытия BODY, так что BODY для него и есть родитель. Гораздо большая проблема, имхо, со всякими тэгами, которые не требуют закрытия, или которые забыли закрыть веб-программисты.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
27.12.2011, 07:03 | #3 |
Программист и
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,265
|
Алгоритм должен выглядеть примерно так:
1)Идем по файлу 2)Увидели тег открывается, прибавили 1 к уровню тегов 3)Увидели тег закрывается, отняли 1 к уровню тегов 4)Записываем тег в соответствии с уровнем 5)Если файл не закончился делаем пункт 1 |
27.12.2011, 14:10 | #4 |
Веб-дизайнер
Форумчанин
Регистрация: 11.08.2011
Сообщений: 305
|
Simply-Art, я по этому алгоритму и делаю. Но моя задача не открыть файл и вбить его в древо, а редактировать файл и в это время вбивать его в древо. Вот тэг body я закрыл и -1 от уровня тегов, но захотел вновь вернутся в тэг body и добавляя новый тег - записываю его уже на один уровень меньше, чем он должен быть (на ровне с боди запись происходит). Как узнать, что я снова в области тэга Body, и снова прибавить +1 к уровню?
veniside, каждый тэг можно сравнить и узнать требует ли он закрытия. Это как раз у меня получилось. Определить закрыты ли все тэги и какой именно не закрыт - тоже можно. На самом деле все и есть верно. Мы отловили закрытие BODY и отняли -1 от уровня древа, а потом происходит проблема описанная в этом посте чуть выше. |
27.12.2011, 14:29 | #5 |
Просто хороший
Форумчанин
Регистрация: 26.03.2010
Сообщений: 562
|
Значит тебе нужно отлавливать не тег <body> в твоем примере, а следующий тег
Или ты добавляешь так TreeView1.add() Вроде понятно обьяснил (Намекнул)
Помог, нажми весы слева
|
27.12.2011, 19:28 | #6 |
Веб-дизайнер
Форумчанин
Регистрация: 11.08.2011
Сообщений: 305
|
grafgrial, в каком смысле "следующий тэг"? Ну, отловлю я начало того же тэга A из первого примера, куда мне его добавить, не зная как был открыт (и был ли закрыт) тэг BODY (по Вашему методу мы его не отлавливаем).
|
27.12.2011, 19:36 | #7 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перевод Excel в HTML | alexan0308 | Общие вопросы Delphi | 1 | 31.08.2018 09:28 |
Удаление всех html тэгов из строки. | askerpro | PHP | 3 | 28.11.2011 20:15 |
Перевод сайта с HTML/Javascript на PHP/MySQL | SODUL | Помощь студентам | 0 | 15.01.2011 01:56 |
Перевод текста из HTML в txt | Valkiria | Помощь студентам | 8 | 10.10.2007 18:39 |
Добавление html тэгов в поле TEXTAREA | Reverent | Общие вопросы по Java, Java SE, Kotlin | 0 | 30.05.2007 15:06 |