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] xmltab - просмотр XML файлов
Goto page Previous  1, 2, 3, 4, 5, 6, 7  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Tue Mar 01, 2022 22:22    Post subject: Reply with quote

little-brother wrote:
Проблема, когда отображается не содержимое узла, а список прямых потомков, как таблица (режим TABLE). Сейчас связи между потомком и представляющей его строкой - нет. Вот думаю как увязать, чтобы не слишком путано было.


Блин, меня терзают смутные сомнения, что в этом режиме вообще ничего не надо было бы генерить...
Можно пример такого файла? Реального файла, не пары псевдострок в тегах КОД под этот форум)))
Чтобы понимать - о каких таких частных случаях таблицы идет речь...
Я вот не могу представить вида XML, у которого не будет возможности делать так просто, как я написал вот выше...

я вполне допускаю, что написанный код будет работать более чем шустро и адекватно! но есть шанс, что он все же не нужен будет, а правильный код - это еще и не перегруженный код!
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Tue Mar 01, 2022 22:38    Post subject: Reply with quote

Эмм, режим TABLE как раз основной. Большого смысла смотреть на перечень атрибутов и дочерних узлов - нет. В виде текста, если значения не очень длинные, они отлично читаются и так.

Табличный вид нужен для того, чтобы XML вида
Code:

<root>
   <x>AAA</x>
   <x>BBB</x>
   <x>BBB</x>
</root>


Отобразить как таблицу из трех строк AAA, BBB и CCC, а не x, x и x, что достаточно бессмыслено.

Quote:
правильный код - это еще и не перегруженный код

Я в такой не умею Very Happy Да нормально там всё получилось - просто добавил отдельный массив под ссылки на узлы, который связан с таблицей, а не деревом.

P.S. Show same глючит Very Happy

Поправил - https://disk.yandex.ru/d/nxZAdmtzFqlIlw
В архиве тестовый XML. Я тестируюсь на /mxmldoc/function6

Предыдущий пост менял - может не заметили.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Wed Mar 02, 2022 15:03    Post subject: Reply with quote

little-brother wrote:
Поправил - https://disk.yandex.ru/d/nxZAdmtzFqlIlw
В архиве тестовый XML. Я тестируюсь на /mxmldoc/function6

ну вроде всё вполне корректно и на своих местах, как я могу увидеть.
единственно что - упомянутые в XML ссылки на доп.файлы отсутствуют.
и это в какой-то мере плохо - для валидации файла, для его парсинг отдельными специализированными программами, в которых можно было бы проверить верность XPath, свертки узлов/визуального представления и т.п. вещи...
У вас есть ПОЛНЫЙ комплект этих файлов dtd, xls, xsd? Откуда, условно говоря, этот одинокий 3.xml нашелся/взялся?
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Wed Mar 02, 2022 16:00    Post subject: Reply with quote

Откуда? Ок, Гугл, найди мне пример XML-файла... Спасибо Very Happy

Насчет дополнительных файлов: используемая библиотека их не понимает, т.к. это простейший парсер, который будет парсить даже невалидный XML.

Для полной работы с XML требуются библиотеки libexpat или libxml2, которые и собрать под Windows еще надо постараться. Можно конечно Windows-парсер подключить, но мне чего то лень разбираться и плагин на С++ придется переводить, т.к. там работа через OLE-интерфейсы.

Да и делать полноценный инструмент для просмотра XML у меня нет в планах, т.к. XML я вижу только при разработке этого плагина Smile
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Wed Mar 02, 2022 16:09    Post subject: Reply with quote

little-brother wrote:
Насчет дополнительных файлов: используемая библиотека их не понимает, т.к. это простейший парсер, который будет парсить даже невалидный XML.

Для полной работы с XML требуются библиотеки libexpat или libxml2, которые и собрать под Windows еще надо постараться. Можно конечно Windows-парсер подключить, но мне чего то лень разбираться и плагин на С++ придется переводить, т.к. там работа через OLE-интерфейсы.

Да и делать полноценный инструмент для просмотра XML у меня нет в планах, т.к. XML я вижу только при разработке этого плагина

не-не-не!!! не идет речь о текущем плагине/библиотеке!
нет! тут все ок и самодостаточно!
нет. речь просто идет о возможностях, предлагаемых большими shareware продуктами. вот им нужны все файлы для полноценной работы с этим конкретным xml.
А весь парадокс в том, что гугл НЕ выдает этого файла))) вот что за запрос вы давали, что получили в виде ответа этот файл)??
Там где-то рядом должны и все остальные файлы лежать. Вот найти бы это место..
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Wed Mar 02, 2022 20:50    Post subject: Reply with quote

Учитывая, что там ссылка на xls, то видимо это был какой то экспорт документации к mxml. Имя наталкивает на мысль, что возможно я все таки дернул этот файл из какого то дистрибутива, когда выбирал библиотеку для парсинга. Но я недавно чистил папку загрузок, так что следов не найти уже.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Thu Mar 03, 2022 21:53    Post subject: Reply with quote

Ок, проехали с этим файлами. Как-нить сам разберусь, для красоты по сути те файлы нужны в сторонних прогах...

А релиз выкатывается? или еще есть повод для улучшения?
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Thu Mar 03, 2022 23:06    Post subject: Reply with quote

Планируется еще дополнительная обработка ссылок в значениях ячеек (это общее для всех плагинов).
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Fri Mar 04, 2022 15:29    Post subject: Reply with quote

Насчет Show same - не ясно когда она срабатывает
Code:
<LIST_OF_PERSONS>
  <DATA>
    <NAME>...</NAME>
    <ID>...</ID>
    <PASSPORT>
      <SERIJA lang="qwe">...</SERIJA>
      <NOMER>...</NOMER>
    </PASSPORT>
  </DATA>
  <DATA>
    <NAME>...</NAME>
    <ID>...</ID>
    <PASSPORT>
      <SERIJA>...</SERIJA>
      <NOMER>...</NOMER>
    </PASSPORT>
  </DATA>
  <DATA>
    <NAME>...</NAME>
    <ID>...</ID>
    <PASSPORT>
      <SERIJA>...</SERIJA>
      <NOMER>...</NOMER>
    </PASSPORT>
  </DATA>
</LIST_OF_PERSONS>

вот на таком грубом примере на каком узле и как ожидаемо должна сработать эта команда?
Я вот ожидал, что на любом, просто будут отброшены все остальные узлы. К примеру, если выбрать узел SERIJA, то выйдет так:
Code:
<LIST_OF_PERSONS>
  <DATA>
    <PASSPORT>
      <SERIJA lang="qwe">...</SERIJA>
    </PASSPORT>
  </DATA>
  <DATA>
    <PASSPORT>
      <SERIJA>...</SERIJA>
    </PASSPORT>
  </DATA>
  <DATA>
    <PASSPORT>
      <SERIJA>...</SERIJA>
    </PASSPORT>
  </DATA>
</LIST_OF_PERSONS>

Или даже так:
Code:
<LIST_OF_PERSONS>
      <SERIJA lang="qwe">...</SERIJA>
      <SERIJA>...</SERIJA>
      <SERIJA>...</SERIJA>
</LIST_OF_PERSONS>

А сейчас ничего и никак не происходит(((

P.S. понятно, что я показываю чистый xml, а плагин работает с деревом узлов и таблицей значений.
НО, я думаю понятно, что просто так мне проще показать то - что может отразить сам плагин в своих возможностях:
ЧТО-ТО уйдет в дерево, а ЧТО-ТО покажется как таблица значений.
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Sat Mar 05, 2022 22:23    Post subject: Reply with quote

Quote:

вот на таком грубом примере на каком узле и как ожидаемо должна сработать эта команда?

Sad Похоже надо что-то делать, раз не очевидно, что данная команда делает.

Для вашего XML данная команда бесполезна, т.к. у узла LIST_OF_PERSONS все прямые потомки одинаковы. В рассматриваемом выше файле 3.xml для узла function потомки могут быть: description, return value и argument. Команда Show same нужна для того, чтобы просмотреть все узлы типа argument (прямые потомки function!) таблицей. Т.е. в некоторых XML данные вроде как могут быть отображены таблицей, но мешает один-два не совсем обычных элемента. В этом случае и может помочь команда Show same.

Если надо что-то другое, то вы опишите - подумаю и может быть даже реализую, если не сильно сложно будет. Отбора по XPath пока не будет Smile
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Sun Mar 06, 2022 13:17    Post subject: Reply with quote

little-brother wrote:
В рассматриваемом выше файле 3.xml для узла function потомки могут быть: description, return value и argument. Команда Show same нужна для того, чтобы просмотреть все узлы типа argument (прямые потомки function!) таблицей.

если честно - все равно не понятно. В том-то и дело, что данная команда понимается и принимает для использования именно что в духе "фильтр по XPath". Причем в этом случае сущность табличного представления каких-то отфильтрованных данных лишь увеличивает свою пользу и её понимание - ибо происходит отсекание ненужного, а оставшееся весьма вероятно превращается в табличное представление.
А сейчас... Я открыл этот файл, выбрал (точнее я ОООЧЕНЬ помучался, пока искал узел, содержащий) return value, выбрал эту команду ... и... и справа в таблице появилась одна строка. И что это означает? Не понял. А вот если бы исчезли ВСЕ лишние узлы - то тогда бы понял. Ибо может быть на весь файл этот узел есть лишь в одном варианте, ибо я же замучился его выискивать! А как это понять? Только лишь, если бы из дерева исчезли все остальные узлы!
Далее выбрал argument и .. и плагин задумался секунд на 5/7 .. и рухнул, а за ним и тотал рухнул нафиг. падает в любой разрядности. но в 32-й чаще! Т.е. 64 может иногда и не упасть при фильтрации.
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Sun Mar 06, 2022 14:19    Post subject: Reply with quote

Quote:
return value, выбрал эту команду ... и... и справа в таблице появилась одна строка.

Так и задумано: отображаются только прямые потомки, имеющие тот же тег, что и текущий. Обратите внимание, что после выполнения команды фокус переходит на родительский узел. Поскольку return value у function один, то он один и показывается. Мне кажется вы чего другого ожидаете и данная функция никак не бьется с вашими ожиданиями.
Изменю название на "Show the same siblings" (показать похожие на этом же уровне). Длинновато, но вроде однозначное описание.

Дерево всегда неизменно. Его фильтровать не получится, т.к. данные хранятся прямо в нем. Можно конечно перестраивать, но на больших XML это будет медленно.

Quote:
точнее я ОООЧЕНЬ помучался, пока искал узел, содержащий

Наверно стоит добавить поиск по дереву Smile

Можно поподробнее, что именно надо сделать, чтобы плагин упал? Я повторить не могу. 4-ый узел function содержит return value.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Sun Mar 06, 2022 15:05    Post subject: Reply with quote

little-brother wrote:
Можно поподробнее, что именно надо сделать, чтобы плагин упал?

да вроде все просто. открываем файл 3.xml. Открываем узел function6. Выделяем description. Вызываем конт.меню и выбираем пункт Show same. И вуаля....

little-brother wrote:
отображаются только прямые потомки, имеющие тот же тег, что и текущий. Обратите внимание, что после выполнения команды фокус переходит на родительский узел.

А этот переход лишь ухудшает понимание и использование дерева. Ведь после того, как узел выделен, то никаким образом его не перевести в режим отображения его элементов.
Т.е. из
никак не получить
Только если выделить другой узел и потом опять вернуться к этому! Это нефига не удобно и не прозрачно! Любое выделение узла подразумевает, что будет отображено ТО - что под этим узлом прячется. На то это и дерево XML! А тут выделение есть, а отображение совсем другого рода показывается.
Плюс зачем в табличном представлении колонка #CONTENT ? Она же просто показывает склеенное значение предыдущих столбцов. Ну а нафига оно???
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Sun Mar 06, 2022 15:29    Post subject: Reply with quote

Quote:
Открываем узел function6. Выделяем description.

Повторилось. Отлично, будет с чего начать копать - я на одиночных узлах не проверял, т.к. для них смысла нет. Как оказалось зря Smile

Quote:
Ведь после того, как узел выделен, то никаким образом его не перевести в режим отображения его элементов.

Добавлю чтобы повторный клик по выделенному узлу вызывал перевод в обычный режим (точнее просто вызывал обновление таблицы).
А можно просто по соотв. строке кликнуть в таблице.

Quote:
зачем в табличном представлении колонка #CONTENT ?

Это чтобы можно было искать по всему содержимому, а не только в том, что в прямых потомках.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 212

Post (Separately) Posted: Sun Mar 06, 2022 18:46    Post subject: Reply with quote

little-brother 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, 4, 5, 6, 7  Next
Page 3 of 7

 
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