Очистка текста от мусора и разбивка на списки с маркерами

12
T
На сайте с 07.04.2010
Offline
61
1339

Здравствуйте. У товаров есть описания, все разного вида. Пример одного из них:

HTML:

 <p style="font-weight: bold; font-size: 12px; font-family: Arial, serif; ">Мини-очиститель</p>

<div class="clearfloats"></div>
<p style="font-size: 12px; font-family: Arial, serif; "></p>
<table cellspacing="0" cellpadding="0" class="properties">
<tbody>
<tr><td class="property" style="font-size: 12px; font-family: Arial, sans-serif; ">Питание </td><td class="value">2хAA </td></tr>
<tr><td class="property" style="font-size: 12px; font-family: Arial, sans-serif; ">Вес брутто </td><td class="value">0,1 кг </td></tr>
<tr><td class="property" style="font-size: 12px; font-family: Arial, sans-serif; ">Вес нетто </td><td class="value">0,09кг </td></tr>
<tr><td class="property" style="font-size: 12px; font-family: Arial, sans-serif; ">Габариты короба (Д/Ш/Г) </td><td class="value">7,7х4,3х7,9</td></tr>
<tr><td class="property" style="font-size: 12px; font-family: Arial, sans-serif; " colspan="2">Характеристики миниочистителей
<ul>
<li>Металлическая защитная решетка </li>
<li>Съемный прозрачный контейнер </li>
<li>Идеально удаляет катышки с одежды и текстильных изделий</li>
<li>Эргономичная форма
<br />
</li>
</ul>
</td></tr>
</tbody>
</table>

Необходимо его отчистить от хтмл, и снова собрать, но в две ровные колонки.

На выходе должно получиться

HTML:

 <ul>

<li>Питание 2хAA</li>
<li>Вес брутто 0,1 кг</li>
<li>Вес нетто 0,09кг</li>
<li>Габариты короба (Д/Ш/Г) 7,7х4,3х7,9</li>
</ul>
<ul>
<li>Характеристики миниочистителей</li>
<li>Металлическая защитная решетка</li>
<li>Съемный прозрачный контейнер</li>
<li>Идеально удаляет катышки с одежды и текстильных изделий</li>
<li>Эргономичная форма</li>
</ul>

Как это вообще возможно сделать?

Моя голова уже трещит.

H
На сайте с 13.06.2011
Offline
9
#1

Так а чем не устраивает табличное представление? Что за мода такая пошла - если блочная верстка, то все нужно непременно в блочных элементах сделать? Табличные данные на то и табличные, что должны быть в таблице :) А если много буковок, то это кажется, стоит все в css максимально вынести и будет все ок

Haubergeon добавил 04.07.2011 в 21:16

Haubergeon:
Так а чем не устраивает табличное представление? Что за мода такая пошла - если блочная верстка, то все нужно непременно в блочных элементах сделать? Табличные данные на то и табличные, что должны быть в таблице :) А если много буковок, то это кажется, стоит все в css максимально вынести и будет все ок

Ну а вообще задача ваша решается очень просто

<li><span class="td1">Питание</span><span class="td2">2хAA</span></li>

после прописываем в стилях нужные свойства для .td1 и .td2, если я правильно понял что нужно сделать. И в итоге у вас получится то, что можно сделать таблицей, без всяких стилей и голова трещать не будет :)

Слово не воробей. Все не воробей, кроме воробья!
T
На сайте с 07.04.2010
Offline
61
#2
Haubergeon:
Так а чем не устраивает табличное представление? Что за мода такая пошла - если блочная верстка, то все нужно непременно в блочных элементах сделать? Табличные данные на то и табличные, что должны быть в таблице :) А если много буковок, то это кажется, стоит все в css максимально вынести и будет все ок

Верстальщик предоставил такие шаблоны, что необходимо именно таким образом данные вставлять.

H
На сайте с 13.06.2011
Offline
9
#3

Смотрите выше, добавил

T
На сайте с 07.04.2010
Offline
61
#4
Haubergeon:
Так а чем не устраивает табличное представление? Что за мода такая пошла - если блочная верстка, то все нужно непременно в блочных элементах сделать? Табличные данные на то и табличные, что должны быть в таблице :) А если много буковок, то это кажется, стоит все в css максимально вынести и будет все ок

Haubergeon добавил 04.07.2011 в 21:16


Ну а вообще задача ваша решается очень просто
<li><span class="td1">Питание</span><span class="td2">2хAA</span></li>

после прописываем в стилях нужные свойства для .td1 и .td2, если я правильно понял что нужно сделать. И в итоге у вас получится то, что можно сделать таблицей, без всяких стилей и голова трещать не будет :)

Вы чуточку не правильно поняли :) Все вышеописаное, то что есть сейчас. Находиться в одной переменной. И отредактировать то что в ней НАМ не предоставляется возможным.

H
На сайте с 13.06.2011
Offline
9
#5
Tchort:
Вы чуточку не правильно поняли :) Все вышеописаное, то что есть сейчас. Находиться в одной переменной. И отредактировать то что в ней НАМ не предоставляется возможным.

Записывайте в переменную тогда доп классы(обернуть текст какой-либо конструкцией не должно составить труда, если сами делали вывод этой переменной), дело в том что по-другому никак не выйдет все представить в "табличном" виде (чтобы ровненько было, как-будто колонки есть). Пробелами не отделаетесь, т.к. буквы имеют разную длинну)

T
На сайте с 07.04.2010
Offline
61
#6
Haubergeon:
Записывайте в переменную тогда доп классы, дело в том что по-другому никак не выйдет все представить в "табличном" виде (чтобы ровненько было, как-будто колонки есть). Пробелами не отделаетесь, т.к. буквы имеют разную длинну)

Прекрасно понимаю что буквы имею разную длину и т.д. Но заказчик отказывается переписывать "нетакмного" десятков своих описаний под то что нужно, и говорит что мы обязаны сделать это программно.

H
На сайте с 13.06.2011
Offline
9
#7
Tchort:
Прекрасно понимаю что буквы имею разную длину и т.д. Но заказчик отказывается переписывать "нетакмного" десятков своих описаний под то что нужно, и говорит что мы обязаны сделать это программно.

Тогда скажите заказчику, что он требует то, чего выполнить невозможно) Хотя как вариант - распарсить вашу переменную (выход известен же), и "нелету" добавить то чего не хватает до нормального отображения, можно это сделать как на серверной стороне (php), так и на клиентской (js), но второй вариант менее работоспособен, ввиду того, что у пользователя может быть выключен js

T
На сайте с 07.04.2010
Offline
61
#8
Haubergeon:
Тогда скажите заказчику, что он требует то, чего выполнить невозможно) Хотя как вариант - распарсить вашу переменную (выход известен же), и "нелету" добавить то чего не хватает до нормального отображения, можно это сделать как на серверной стороне (php), так и на клиентской (js), но второй вариант менее работоспособен, ввиду того, что у пользователя может быть выключен js

К сожалению не все описания одинакого вида, вариант только если полность очистить от хтмл и далее собрать. Но как собирать не зная где новая строка и т.д.

Mad_Man
На сайте с 10.11.2008
Offline
162
#9

Про исходники Вы ничего толком не написали, кроме фразы про "находится в одной переменной" (находятся ли исходники для правки в БД\в файле .html\как часть вывода массива), поэтому рассмотрен вариант с .html, но легко допиливается под переменную, регулярки одни и те же. Если не получится самим, помогу за бапке долепить до любого варианта вывода.

Код комментирован, подробнее там же.

zip cleaner.zip
J
На сайте с 28.06.2011
Offline
83
#10

Можно заюзать библиотеку Jevix или Kses для чистки HTML от лишних тэгов.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий