Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Продвижение и оптимизация сайтов > Разбор строки на теги...


Автор: aktuba 11.5.2006, 10:24
Как мне определить в html тексте каких тегов и в каких местах не хватает?
Например:

Код

<html>
<head>
</head>
<body>
<strong>Test Text
<i>Test Text 2</strong>
</body>
</html>


Как сделать, чтобы программа сама определяла куда какой тег вставить? 

Автор: Alexeis 11.5.2006, 10:27
aktuba, нужно искать ошибки в html или его генерировать? 

Автор: Тьма 11.5.2006, 10:37
тебе надо просто читать файл, и определять какие теги есть, какие надо 
используй FileStream или AssignFile 

Автор: Демо 11.5.2006, 10:37
aktuba

Определяй список парных тегов, ищи те, у которых нет пары. ВОт и все. 

Автор: aktuba 11.5.2006, 10:44
ну нашел я что не хватает тега [/i], а куда его вставить? а если теги вложенные ('[i]fff')?
 

Автор: Alexeis 11.5.2006, 10:53
Цитата(aktuba @  11.5.2006,  09:44 Найти цитируемый пост)
ну нашел я что не хватает тега [/i], а куда его вставить? а если теги вложенные ('[i]fff')?

Нужно найти первый тег идущий перед <i> например<tag1>  и если он парный то поставить </i> перед </tag1> если он не парный то искать ближайший к нему и т.д., вообще задача неопределенная брать максимально возможное число символов или минимольное... и то и то будет верно 

Автор: Dynamic 11.5.2006, 11:22
Цитата(aktuba @  11.5.2006,  10:44 Найти цитируемый пост)
ну нашел я что не хватает тега [/i], а куда его вставить? а если теги вложенные ('[i]fff')?
  

навскидку ты это никак не определишь, придется строить лексический анализатор.
Или взять чей-нибудь готовый, уверен, что ты не первый решаешь эту задачу.
 

Автор: Демо 11.5.2006, 12:12
aktuba

Ты можешь только найти недостающие теги. Задача об их добавлении нерешаема.  

Автор: aktuba 11.5.2006, 12:30
Кто-нибудь подскажите решение. Может есть какой-то компонент, модуль и т.д. Очень надо, а самому делать с нуля времени не хватает...
 

Автор: 2man 11.5.2006, 15:24
Цитата(Демо @  11.5.2006,  12:12 Найти цитируемый пост)
Ты можешь только найти недостающие теги. Задача об их добавлении нерешаема

Серьезно? А Javascript'ом воспользоваться нельзя? 

Автор: Mechanic 11.5.2006, 15:54
Можно создать стек (LIFO), и при встрече с новым открывающим парным тегом вталкивать его в стек, а при встрече корректного закрывающего удалять с вершины стека. Если же встречен не корректный закрывающий тег, то генерить в текст закрывающие теги для всех снимаемых со стека до тех пор, пока не попадется открывший, либо же вставлять открывающий парный тег непосредственно перед "левым" закрывающим - всё равно текст с ошибками (логическими), но так можно хоть синтаксическую структуру скорректировать.  smile 
А угадать, где должен бы стоять отсутствующий тег, чтоб сохранить логическую целостность страницы (или её оформление), будет очень сложно. 

Автор: R.M. 12.5.2006, 10:43
http://validator.w3.org/ 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)