Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

[wlx] XML Review - просмотр XML и JSON файлов
Goto page Previous  1, 2, 3  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
olegvsk



Joined: 17 Dec 2020
Posts: 36

Post (Separately) Posted: Thu Sep 22, 2022 16:57    Post subject: Reply with quote

junk wrote:
olegvsk, спасибо за обновление, стало лучше!
По поводу кастомного поиска не разделяю Вашего мнения, мне кажется одно окно гораздо удобнее, особенно когда текст ищется в файлах разных типов. Вы легко поймёте, например, ищется значения и в конфигах (xml), и в исходных текстах (c/cpp/h/etc), приходится искомую строку дважды вбивать, а так хваталобы одного (!) нажатия F3 в каждом новом окне.

Согласен, решение спорное, возможно, стоит переделать.

Quote:
похоже иногда плагин кидает исключение на выгрузке (тотал показывает окно с эксепшном)

Не замечал, но проверю. Есть какая-то закономерность?
Back to top
View user's profile Send private message
junk



Joined: 27 Jul 2015
Posts: 29

Post (Separately) Posted: Fri Sep 23, 2022 11:43    Post subject: Reply with quote

olegvsk wrote:
Не замечал, но проверю. Есть какая-то закономерность?

К сожалению, закономерности пока не замечаю.
Back to top
View user's profile Send private message
olegvsk



Joined: 17 Dec 2020
Posts: 36

Post (Separately) Posted: Fri Sep 23, 2022 13:07    Post subject: Reply with quote

junk wrote:

К сожалению, закономерности пока не замечаю.

Думаю, я нашёл, в чём может быть проблема. Перекачайте плагин http://totalcmd.net/download.php?id=xmlreview1.0. Если ошибка повторится - просьба, пришлите, пожалуйста, её текст (Ctrl+C или картинкой).
Back to top
View user's profile Send private message
junk



Joined: 27 Jul 2015
Posts: 29

Post (Separately) Posted: Thu Oct 06, 2022 15:21    Post subject: Reply with quote

olegvsk, с момента обновления ошибка ни разу не повторилась.
Back to top
View user's profile Send private message
olegvsk



Joined: 17 Dec 2020
Posts: 36

Post (Separately) Posted: Sun Oct 09, 2022 23:30    Post subject: Reply with quote

junk wrote:
olegvsk, с момента обновления ошибка ни разу не повторилась.

Отлично, спасибо.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Sun Dec 04, 2022 19:48    Post subject: Reply with quote

olegvsk
На предыдущей странице я показывал пример файла - для которого было бы удобно получить другой вариант XPath представления при копировании пути до искомого элемента...
И вот в этой версии (30.11.2022 XML Review 3.5) я увидел этот второй вариант, но немного странный результат выходит:
Ваш вариант:
/LIST_OF_PERSONS[1]/DATA[2]/PASSPORT[1]/SERIJA[1]
Ожидаемый вариант:
/LIST_OF_PERSONS/DATA[2]/PASSPORT/SERIJA
Отношение "элемент массива" не указывается для явно одиночных субэлементов.
Корень LIST_OF_PERSONS - он один. Поэтому /LIST_OF_PERSONS/.
PASSPORT внутри второго субэлемента DATA: так же один - поэтому /PASSPORT/.
И собсно тоже и для SERIJA.
Back to top
View user's profile Send private message
olegvsk



Joined: 17 Dec 2020
Posts: 36

Post (Separately) Posted: Sun Dec 04, 2022 21:41    Post subject: Reply with quote

Destiny wrote:
Отношение "элемент массива" не указывается для явно одиночных субэлементов.

Зависит от того, где используется XPath. MS SQL, например, не примет /Root/OnlyNode, а попросит (/Root/OnlyNode)[1] либо/Root[1]/OnlyNode[1]. Поэтому сделал XPath избыточным.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Mon Dec 05, 2022 13:32    Post subject: Reply with quote

olegvsk wrote:
Зависит от того, где используется XPath. MS SQL, например, не примет /Root/OnlyNode, а попросит (/Root/OnlyNode)[1] либо /Root[1]/OnlyNode[1]. Поэтому сделал XPath избыточным.

Да, нашел инфу о том, что у мелкомягких свой подход с типизации данных в XQuery/XPath.
И да оба ваши варианта типа решают проблему. НО все же заметим, что первый вариант оказывается наиболее приближен к логическому выделению пути: /LIST_OF_PERSONS/DATA[2]/PASSPORT/SERIJA
вот пример:
Code:

with TEST(info) as
(
   select info
   from   (values (cast('<LIST_OF_PERSONS xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                           <DATA>
                             <NAME>nm1</NAME>
                             <ID>12</ID>
                             <PASSPORT>
                               <SERIJA>mn123</SERIJA>
                               <NOMER>3335</NOMER>
                             </PASSPORT>
                           </DATA>
                           <DATA>
                             <NAME>nm2</NAME>
                             <ID>23</ID>
                             <PASSPORT>
                               <SERIJA>mn354</SERIJA>
                               <NOMER>5645</NOMER>
                             </PASSPORT>
                           </DATA>
                           <DATA>
                             <NAME>nm3</NAME>
                             <ID>34</ID>
                             <PASSPORT>
                               <SERIJA>mn456</SERIJA>
                               <NOMER>64897</NOMER>
                             </PASSPORT>
                           </DATA>
                         </LIST_OF_PERSONS>' as xml))) TEST(info)
)
SELECT info.value('(/LIST_OF_PERSONS/DATA[2]/PASSPORT/SERIJA)[1]', 'nvarchar(20)') as Seria
FROM   TEST;

Если MS SQL под рукой нет - то вот тут онлайн можно запустить:
https://data.stackexchange.com/stackoverflow/query/1683212?opt.withExecutionPlan=true

Т.е. для MS SQL да, надо делать допущение, но оно возможно быть минимальным! Т.е. основа это:
/LIST_OF_PERSONS/DATA[2]/PASSPORT/SERIJA, а доработкой является лишь взятие основы в (...)[1]
И прошу заметить - этого действия вы все равно не делаете! А значит напрямую использовать этот путь
в MS SQL все равно нельзя Sad
Отсюда вывод-предложение. Команду копирования XPath стоит сделать в виде выпадающего меню и в нем
предлагать под какие задачи пользователю будет удобнее копировать этот путь.
Для простых, нетребовательных случаев это:
/LIST_OF_PERSONS/DATA/PASSPORT/SERIJA
хотя не могу найти пример такого использования, ведь это выборка всего и вся...
для более корректного уточнения, ибо мы же на конкретном элементе вызываем команду:
/LIST_OF_PERSONS/DATA[2]/PASSPORT/SERIJA
спецом для использования в MS SQL напрямую:
(/LIST_OF_PERSONS/DATA[2]/PASSPORT/SERIJA)[1]

Кстати, проверять все пути вот тут: https://www.videlibri.de/cgi-bin/xidelcgi
можно - там все вариации спецификаций поддерживаются вроде как.
Back to top
View user's profile Send private message
olegvsk



Joined: 17 Dec 2020
Posts: 36

Post (Separately) Posted: Mon Dec 05, 2022 15:03    Post subject: Reply with quote

Destiny wrote:
Команду копирования XPath стоит сделать в виде выпадающего меню и в нем
предлагать под какие задачи пользователю будет удобнее копировать этот путь.

У вас слишком творческий подход Smile. Путь без индексов есть, путь с индексами (это была ваша идея, вполне благодарен вам за неё) есть, и на том же MS SQL он работает. Всех вариантов не предусмотришь, форма XPath сильно зависит от стоящей задачи.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Mon Dec 05, 2022 16:30    Post subject: Reply with quote

olegvsk wrote:
Destiny wrote:
Команду копирования XPath стоит сделать в виде выпадающего меню и в нем
предлагать под какие задачи пользователю будет удобнее копировать этот путь.

У вас слишком творческий подход Smile. Путь без индексов есть, путь с индексами (это была ваша идея, вполне благодарен вам за неё) есть, и на том же MS SQL он работает. Всех вариантов не предусмотришь, форма XPath сильно зависит от стоящей задачи.

Ну, поэтому и предлагается творчески обыграть эти варианты.
А пока что для вами же упомянутого MS SQL ваш же вариант НЕ работает полноценно))) Как и отмечено у вас - путь надо еще допом в (...)[1] оборачивать.
Поэтому не совсем понимаю, почему надо оставлять то - что есть, а не сделать потенциал для расширения. Причем с упрощением ! логики набора пути.
А то - что форма зависит - это да. У нас же тут не полноценный редактор XQuery - это да. Это налагает свои ограничения.

Оу! Еще про творчество! Интернационализа́ции проекта не будет? Чтоб свой язык интерфейса выбрать?
Back to top
View user's profile Send private message
olegvsk



Joined: 17 Dec 2020
Posts: 36

Post (Separately) Posted: Mon Dec 05, 2022 18:20    Post subject: Reply with quote

Destiny wrote:
путь надо еще допом в (...)[1] оборачивать

Не надо, если у всех узлов уже стоят индексы.

Destiny wrote:
Интернационализа́ции проекта не будет?

Честно говоря, не было в планах. Меню достаточно простое. Но, если есть необходимость, это несложно добавить.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Mon Dec 05, 2022 19:22    Post subject: Reply with quote

olegvsk wrote:
Не надо, если у всех узлов уже стоят индексы.

Надо, я же вам для чего ссылку дал на проверку онлайн? Без этого "обертывания" возникает ошибка
'value()' requires a singleton (or empty sequence), found operand of type 'xdt:untypedAtomic *'

Добавлено спустя 53 секунды:

olegvsk wrote:
Меню достаточно простое.

Не только меню - а ВСЕ элементы взаимодействия с пользователем.
Т.е. в том числе и диалог Настроек)))
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Sun Mar 17, 2024 14:24    Post subject: Reply with quote

olegvsk
Вопрос - при нахождении ошибки внутри содержимого тегов XML в текстовой части плагина справа - да,
выводится ошибка с указанием места ее нахождения. НО вот ведь нюанс - этот текстовый вывод ВСЕГО
содержимого XML может сперва быть оооооочень длинным и корректным, поэтому просто до конца этой
"портянки" вывода не долистываешь - думаешь, что всё и так хорошо. А ошибка-то есть, найдена, блин.
В связи с чем предложение - выводить ОКНО поверх всего с указанием того факта, что найдена ошибка,
а для перехода в место её обнаружения, мол, жмите ок. И после этого переводить фокус ввода сразу на
эту текстовую "портянку" вывода, сразу в конец: где и прописан собственно весь текст ошибки парсинга.
Back to top
View user's profile Send private message
olegvsk



Joined: 17 Dec 2020
Posts: 36

Post (Separately) Posted: Mon Mar 18, 2024 13:36    Post subject: Reply with quote

Destiny wrote:
olegvsk
Вопрос - при нахождении ошибки внутри содержимого тегов XML в текстовой части плагина справа - да,
выводится ошибка с указанием места ее нахождения. НО вот ведь нюанс - этот текстовый вывод ВСЕГО
содержимого XML может сперва быть оооооочень длинным и корректным, поэтому просто до конца этой
"портянки" вывода не долистываешь - думаешь, что всё и так хорошо. А ошибка-то есть, найдена, блин.
В связи с чем предложение - выводить ОКНО поверх всего с указанием того факта, что найдена ошибка,
а для перехода в место её обнаружения, мол, жмите ок. И после этого переводить фокус ввода сразу на
эту текстовую "портянку" вывода, сразу в конец: где и прописан собственно весь текст ошибки парсинга.

Выводить модальное окно с требованием обязательной реакции пользователя при быстром просмотре лишнее, мне кажется. Лучше просто при открытии сразу проматывать текст до ошибки. Или показывать ошибку в начале дерева, хотя многие на дерево вообще не смотрят.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Mon Mar 18, 2024 15:44    Post subject: Reply with quote

olegvsk wrote:
при быстром просмотре лишнее

может и лишнее, но фазу быстрого просмотра же можно узнать и реально только в нём просто скроллить до ошибки.
Но вот при просмотре Листером - имхо, надежнее выводить окно. Причем можно бы его именно с одной кнопкой выводить (и то - по опции!) - чтобы даже простейшее воспоследующее нажатие пробела или Enter выполняло его закрытие и переход/скролл к тексту ошибки.

Добавлено спустя 4 минуты:

olegvsk wrote:
Или показывать ошибку в начале дерева

Идея вполне трезвая... Но, с другой стороны - показ текста об ошибке в месте, НАИБОЛЕЕ близком к ошибке, тоже весьма логичен и практичен.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group