Создание Кнопки Hotspot Внутри Richполя

  • Автор темы StarikStarik2705
  • Дата начала

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
ToxaRat самая "затратная" - изменяемая часть
стринг надо парсить, ДОМ и есть парсер, кот. на малом объеме удобен и достаточно эффективен
почему стринг нужно парсить?
стандартная replace(исходник, тег, значение) сделает своё дело шустрее любого парсера
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
473
в быстроте реплейса стрингов, в LS, у меня сомнения
как ты полагаешь осущ. замена? ;) мне почемуто кажется что это - поиск "лексем", кагбэ намекает на парсинг...
в части анализа
но опуская все эти термины можно сказать - сканировать ДХЛ на присут. там некой информации придется (как при замене, так и при построении ДОМ)
эффективность надо сравнивать тестами
ДОМ - удобнее/универсальнее (в части управления)
 

savl

Lotus Team
28.10.2011
2 625
314
BIT
545
lmike , ToxaRat
Уважаемые, все как всегда зависит от задачи.
Парсить строку длинной 2 GB вряд ли кто будет, а вот символов < 2K еще возможно.
На LS запарсить строку можно 2-мя способами:
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Варианты из инета</div></div><div class="sp-body"><div class="sp-content">
Код:
Function replaceSubString(sourceStr As String, fromStr As String, toString As String) As String
replaceSubString = Join(Split(sourceStr,fromStr),toString)
End Function
' или
' someString = Join( Evaluate( |@ReplaceSubstring(”doc\position”; ”\”; ”\\”)| ) )
' Но уточнение:
' If your string has less than 2048 characters, you should use evaluate with @replacesubstring, else, use ls replace.
Что касается парсера строки в java, тут я не подскажу. lmike, здесь вы явный лидер в знаниях.
Что же касается парсера на основе DOM, то работа с ним в java побыстрее (да и попроще, пакетов много готовых), чем в LS; но опять же размеры структуры имеют значение (на мой взгляд).

Что касается конкретной задачи, я бы делал все-таки строкой, но на каждый кусок dxl, а не на весь готовый.
Потом бы эти куски в результат собирал, затем запись в файл и импорт.
Либо же сразу писал файл по кускам, затем импорт.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
473
savl речь о шаблонизации, есть шалон на ДХЛ, надо посунуть изменяемые данные
с моей т.з. картина след.:
-ДОМ, бежим по нодам, пишем в стрим
-встретив теги - пишем данные доков и коллекции, походу дублируем строки

сам ДОМ - небольшой (ибо шаблон такой, по задаче)
 

savl

Lotus Team
28.10.2011
2 625
314
BIT
545
lmike
т.е.:
Использовать DOM чтобы только разобрать шаблон и найти нужные теги, пишем в стрим начало из DOM.
Затем идет запись в стрим из коллекции или создаем ноды в структуре?
Затем окончание из DOM.
Правильно понимаю?

Если все именно так, то что мешает:
Хранить начало и конец структуры DXL в документе-настройке.
Записать в стрим начало.
Записать в стрим данные из коллекции.
Записать в стрим конец.

КМК:
Принцип тот же реализация только разная, сложность каждого подхода приблизительно одна.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
473
именно, но гибкость больше с ДОМ
при встрече опред. тега могут происходить разные изменения
и обход ДОм предполагается сделать рекурсивно :(
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!