HTMLayoutGetElementInnerText - нет разделителей для таблицы
От: rstain  
Дата: 25.11.15 14:38
Оценка:
У меня задача сохранить документ в виде текста.
Вроде бы элементарная задача и очевидное решение — использовать HTMLayoutGetElementInnerText.
Но если в документе есть таблица, строки таблицы слепляются без разделителей.
Так, для документа
<html>
<table>
<tr><td>Col1</td><td>Col2</td></tr>
<tr><td>Row11</td><td>Row12</td></tr>
</table>
</html>

возвращается
Col1Col2
Row11Row12

В Sciter у функции SciterGetElementText такое же поведение.

Есть какой-то простой способ получения правильного текста? Желательно в HTMLayout.
(Энумеровать элементы через DOM и сцеплять текст вручную — это вариант на крайний случай, если не найдется ничего проще.)
Отредактировано 25.11.2015 16:10 rstain . Предыдущая версия .
Re: HTMLayoutGetElementInnerText - нет разделителей для таблицы
От: c-smile Канада http://terrainformatica.com
Дата: 25.11.15 18:23
Оценка:
Здравствуйте, rstain, Вы писали:

R>У меня задача сохранить документ в виде текста.

R>Вроде бы элементарная задача и очевидное решение — использовать HTMLayoutGetElementInnerText.

Не сказал бы что это очевидное решение.

Ибо сколько людей столько и мнений как оно должно выглядеть. Канонической формы такого преобразования нет.

Обходить DOM и склеивать текст руками в тот вид что тебе нужно. Ибо только ты знаешь что нужно и какая структура тех таблиц.
Re[2]: HTMLayoutGetElementInnerText - нет разделителей для таблицы
От: rstain  
Дата: 25.11.15 20:40
Оценка:
CS>Ибо сколько людей столько и мнений как оно должно выглядеть. Канонической формы такого преобразования нет.
CS>Обходить DOM и склеивать текст руками в тот вид что тебе нужно. Ибо только ты знаешь что нужно и какая структура тех таблиц.

Ну, канонического, может, и нет, но любой браузер умеет это делать. Естественно, не всегда результат тот, что нужен, но, наверно, в большинстве случаев — да. Было бы удобно, если бы и HTMLayout/Sciter могли это делать.
Ок, значит, решения "из коробки" нет. Хотя обидно — ведь оно почти есть )
Ладно, буду склеивать вручную.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.