@basuser123 Глюки начинаются от 200к строк при поиске, если слабый комп. А до этого момента вроде и проблем особых нету.
Переносы строк. Сжатие пробелов
-
@john_bradley said in Переносы строк. Сжатие пробелов:
Спасибо, что разъяснили. Жаль конечно что приходится мудрить и добавлять кучу действий казалось бы для такой элементарной задачи.
html страница генерируется php скриптом (в основном), а его в свою очередь писал кодер, и для достижения своей цели, он тоже мог прибегнуть к разного рода костылям. Добавлять пробелы к тексту, чтобы выравнять его по элементу например. А когда получаешь этот текст из кода, то его придётся обрабатывать как необходимо.
@john_bradley said in Переносы строк. Сжатие пробелов:
если в одном тексте у меня будет стоять разделитель строки <br/> а в другом </p>
Если получать текст через xpath то оба этих тега выполнят только одну функцию - перенесут строку.
-
@fox said in Переносы строк. Сжатие пробелов:
Если получать текст через xpath то оба этих тега выполнят только одну функцию - перенесут строку.
Не совсем, бас будет все писать в одну строку, по крайней мере в моем примере это так https://yadi.sk/i/O6K-KjSrzFj-GQ Действие "Xpath получить текст" просто убирает теги в html, но не переносит текст если присутствуют теги переноса строки.
@allive said in Переносы строк. Сжатие пробелов:
Для баса получать xml и получать text это разные действия. Он может получить текст из xml но только тот что имеет прямое отношение к тексту.
В данном случае текст ссылки имеет отношение к тексту, например если указать действие xpath получить текст, он находит текст ссылки (в данном случае это "vk.cc/654646") https://yadi.sk/i/O6K-KjSrzFj-GQ потому-что это текст, а если применить получить xml и добавить к нему /text() то программа почему то считает, что это уже не текст, парадокс https://yadi.sk/i/iXM-sua9LrhC0g Вот я о чем.
-
@john_bradley said in Переносы строк. Сжатие пробелов:
он находит текст ссылки
Потому что так написано на странице, какая программа? При чем тут бас? Это правила xpath ну получите текст вашим в арубузе. Бас следует правилам xpath которые у него есть. Это сделано для вас упрощение, а вы зачем то требуя в условиях одно хотите получать другое. https://github.com/bablosoft/BAS/tree/master/Modules/Xpath/js
То что вы в арбузе добавляете как text() здесь реализовано просто разными действиями. Но иногда пейсатели сайтостроители тоже пишут одно а получаются другое. И потому бас умеет как и арбуз прощать ошибки кодерства. Но вот догадываться за вас он не обязан. Браузер тоже)
-
@allive Я говорю о bas, не грешу конечно на программу, просто интересно почему так получается. Получить каждый xml и добавит text() это практически то же самое что и получить текст xml, только на выходе получается массив текстовых строк, если вы говорите о правилах xpath. Тут я ошибок кодерства не заметил, есть xml:
<div id="3881504" class="description"> Вот первая строка. <br/><noindex><a href="https://vk.cc/654646/" class="link " target="_blank" rel="nofollow" title="https://vk.cc/654646">vk.cc/654646</a></noindex> вот сайт (вторая строка). <br/>Вот третья строка. <br/>Вот четвертая строка. <br/> </div>
в нем текст "vk.cc/654646", если получить каждую текстовую строку через "xpath получить кажый xml" таким xpath "//*[@class="description"]/text()" эта часть текста "vk.cc/654646" не отображается, если получать текст через "xpath получить текст" отображается, этот момент мне не ясен.
ХЗ почему так https://yadi.sk/i/Gk4FVosLhaqhFQ -
@john_bradley Я вам все ответил. ответ вашей задаче теперь внимательно смотрите на теги.
Вам даже арбуз подсказывает

-
@allive Так это же текст https://yadi.sk/i/xmerAmVGkqKlfQ
-
Решено. Может кому пригодиться как перевести текст в нормальный вид со всеми переносами
var s = ([[XPATH_XML]]);
s = s.replace(/<br/>/g, "\r\n")
s = s.replace(/<br />/g, "\r\n")
s = s.replace(/<br>/g, "\r\n")
s = s.replace(/</p>/g, "\r\n")
s = s.replace(/<.*?>/g, "")
s = s.replace(/[" "]{3,}/g, "")
s = s.trim()
[[XPATH_TEXT]]=s -
@John_Bradley said in Переносы строк. Сжатие пробелов:
Решено. Может кому пригодиться как перевести текст в нормальный вид со всеми переносами
var s = ([[XPATH_XML]]);
s = s.replace(/<br/>/g, "\r\n")
s = s.replace(/<br />/g, "\r\n")
s = s.replace(/<br>/g, "\r\n")
s = s.replace(/</p>/g, "\r\n")
s = s.replace(/<.*?>/g, "")
s = s.replace(/[" "]{3,}/g, "")
s = s.trim()
[[XPATH_TEXT]]=sА куда всю эту байду нужно тулить? Встроенные языки?

