Страница 1 из 7

[wlx] xmltab - просмотр XML файлов

Добавлено: Сб окт 16, 2021 12:52
little-brother
Плагин для просмотра XML файлов.

Страница проекта - https://github.com/little-brother/xmltab-wlx
Страница на wincmd - http://wincmd.ru/plugring/xmltab.html
Скачать - https://github.com/little-brother/xmlta ... xmltab.zip

Возможности
  • Смешанный просмотр деревом и таблицей
  • Быстрый фильтр по колонке
  • Сортировка колонок
  • Авто-форматирование и подсветка
  • Поддержка ANSI, UTF8, UTF16
  • Открытые исходники
  • Скромный размер
Изображение
Ctrl + Колесо мыши - изменение шрифта
TAB - переход на следующий элемент
Ctrl + TAB - переход на предыдущий элемент

Настройки и другое в Wiki - https://github.com/little-brother/xmltab-wlx/wiki

Добавлено: Пт дек 17, 2021 23:21
Destiny
День добрый!
Имхо для случая, когда в теге нет значения, нужно выводить в дереве тегов слева запись вида:
ИМЯ_ПАРАМЕТРА=<пусто>
а не как сейчас - просто
ИМЯ_ПАРАМЕТРА
В табличном представлении или в текстовом - все понятно, а тут глаз "цепляется"...

И наверное практику с default.ini стоит продолжить на всех ваших плагинах))
Это с csv плагином уж очень здорово вышло...

Добавлено: Сб дек 18, 2021 00:10
little-brother
Если представить такое на дереве тегов на картинке сверху, то получится, что у каждого тега справа будет

Код: Выделить всё

reaction = <пусто>
Это точно такое надо? Можно конечно настройку добавить.
с default.ini стоит продолжить
В процессе уже ;)

Добавлено: Сб дек 18, 2021 14:27
Destiny
little-brother писал(а):на картинке сверху
нет раскрытых ПУСТЫХ тегов. Это все узлы с наполнением...
А речь идет именно о случае, когда у узла НЕТ содержимого. Т.е. название есть, а внутри ничего.
<subdata></subdata> или <subdata/>

А на картинке сверху всё ещё дальше раскрывается по щелчку на плюсики.

Добавлено: Сб дек 18, 2021 16:57
little-brother
Готово. Для отображения надо будет в ini-файле выставить

Код: Выделить всё

show-empty = 1

Добавлено: Вс дек 19, 2021 11:08
Destiny
Уже качаю, проверяю)))
В json плагине так же работать будет? там ведь так же бывают кусты/узлы с пустыми данными.

P.S. да, работает клево. Единственно, раз пока нет толком переводов, имхо лучше этот параметр не числовым, а текстовым сделать.
Т.е. если параметр есть и не пустой - то его значение и показывать в дереве. А то нерусское none что-то не хочется видеть))))
show-empty=<пусто>

Добавлено: Вс дек 19, 2021 13:59
little-brother
По хорошему надо бы перевод всего плагина делать, а не вот такие частичные меры. Пробовал, но не понравилось, что получается. Пока отложил. Если не получится, то сделаю как текстовый параметр в следующих версиях.

Добавлено: Пт фев 25, 2022 16:08
Destiny
Приветствую!

В json плагине есть действие Copy as JSON. Реально полезно оказалось.
А вот для XML таковым полезным может оказаться возможность копирования XPath! И вывод текущего выделенного элемента как XPath путь в строке состояний! Сразу за элементом вывода в строке Rows: х/х

И кстати, а что такое SINGLE для XML???
И как воспринимать ROWS в контексте XML, где как бы нет табличного представления! И вывод я всегда вижу как 7/7, 1/1, 3/3. Но никогда 1/5, 2/9... И это при тапах по узлам дерева XML! Понятно дело, что в табличном представлении значений узла - что вводятся справа от дерева - там ROWS логика есть. Так что ИМХО строка ROWS: 7/7 имеет смысл быть заменённой именно выводом полного XPath пути. Вот эта инфа на этом месте более логична! И его копирование тоже весьма полезно и нужно!

Добавлено: Пт фев 25, 2022 16:26
little-brother
Надо подумать, что можно с XPath сделать - в используемой для парсинга XML-библиотеки готового метода нет, особенно после того как я её порезал.
Если его не сложно генерить самому, на основании информации иерархии узлов, то наверно можно добавить.

Добавлено: Пт фев 25, 2022 16:58
Destiny
little-brother писал(а):Если его не сложно генерить самому, на основании информации иерархии узлов
вроде именно так оно и работает))))
просто там есть несколько доп.символов - разделителей/уточнителей, которые надо вставлять.
Так что ориентировочно - да, можно и самому состряпать.
НО ОООООЧЕНЬ странно, что в той библиотеке нет метода под это. Чтобы просто его вызвать и всё.

И кстати, а что такое SINGLE для XML??? так и не понял))))
про ROWS в контексте XML дерева - уж ладно, можно не отвечать ;)
все равно, надеюсь, этот вывод будет заменен более полезным XPath ))

Добавлено: Пт фев 25, 2022 17:14
little-brother
НО ОООООЧЕНЬ странно, что в той библиотеке нет метода под это
Стандарт XML достаточно сложный, напр. если учитывать пространства имен, потому все библиотеки, работающие с ним, мало того, что большие (мегабайты), так еще и собираются непросто. Поэтому я взял самую простую и маленькую из тех, что нашел на задворках GitHub. В большинстве случаев она работает и ладно, но вот плюшек в ней нет от слова совсем.
SINGLE для XML
SINGLE - это когда у узла один потомок и потому это не таблица (TABLE).
ROWS - это просто число строк в "таблице".
Обозначения не имеют смысла, если в XML нет табличных данных, но плагин то не просто так называется xmlTAB.
Вместо ROWS отображать XPath смысла нет. Если и делать, то в выпадающем меню пункт "Copy XPath".

Добавлено: Пт фев 25, 2022 17:23
Destiny
little-brother писал(а):если в XML нет табличных данных, но плагин то не просто так называется xmlTAB.
А есть файл-пример с таким наполнением, где SINGLE превращается в TABLE, и ROWS начинает показывать что-то разное в виде X/Y, а не постоянное ROWS: X/X?

А то я всё показываю лишь плохие примеры файлов, где что-то просто не работает, а вот пример файла, где все работает и как планировалось, но по особенному - такого я еще не видел)))
little-brother писал(а):Если и делать, то в выпадающем меню пункт "Copy XPath".
Это тогда конечно да, именно так)))

Добавлено: Пт фев 25, 2022 17:41
little-brother
В первом случае это SINGLE, во втором TABLE. В целом это видимо не сильно удачное решение в плагине :)

Код: Выделить всё

<X>
    <Y>a</Y>
</X>

<X>
    <Y>a</Y> <-- ROWS: 1/2
    <Y>b</Y> <-- ROWS: 2/2
</X>

Добавлено: Пт фев 25, 2022 18:30
Destiny
little-brother
что то мне кажется, если это единственно придуманный набор тегов, которые описывают логику этих элементов SINGEL|TABLE + ROWS X/Y,
где в общем случае X==Y, то явно это не то, что надо вообще хоть как-то отображать.
XML это всегда набор тегов. Линейный. И то - что они, будучи размещенными на плоскости могут определить двумерное табличное представление - это ничего не значит.
Да, для тегов можно показать в скобках с самим тегом кол-во внутренних подэлементов! Аналог [ROWS: X] - без Y!
Или кол-во байт, которыми описываются внутренние структуры выбранного субтега (сколько занимают в символах строк все данные).
И это всё)), Ну разве что XPath для любого выбранного тега еще вполне логично подсказывать...
т.е. НЕ просто дать возможность его скопировать - но именно что показывать в режиме реального времени - по выбору тега пользователем!

Добавлено: Пт фев 25, 2022 19:20
little-brother
Для нетабличных данных правая часть с таблицей особого смысла не имеет. И в таком случае лучше использовать XMLReview-плагин, хотя он и несколько пожирнее.