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
little-brother



Joined: 29 Sep 2021
Posts: 205

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

Можно добавить настройку для отключения этого столбца, если он так мешает.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 241

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

little-brother wrote:
я на одиночных узлах не проверял, т.к. для них смысла нет. Как оказалось зря

А я-то и не знал - что они одиночные ! Wink
Вот если бы отсечение по XPath работало))))))

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

little-brother wrote:
Можно добавить настройку для отключения этого столбца, если он так мешает.

можно просто сделать его всегда скрытым, ИМХО...
И поиск тогда продолжать будет работать и визуализация будет ровно того, что представляешь увидеть, а не чего-то еще лишнего)))
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 18:53    Post subject: Reply with quote

Quote:
не знал - что они одиночные

Проблему нашел уже и пофиксил. Оказалось немного из-за другого.

Quote:
если бы отсечение по XPath работало

Пока надеяться на то, что появится XPath в каком либо виде, не стоит.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 241

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

little-brother wrote:
Пока надеяться на то, что появится XPath в каком либо виде не стоит

Главное, что есть его копирование! Офигенно вовремя появилось!
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 20:21    Post subject: Reply with quote

Копирование сделать было просто, в отличии от обхода XPath. Разбор XPath достаточно нетивиальная задача, если самому писать.

Чтобы что-то появилось - надо просто написать об этом Smile Я ж не пользуюсь плагином, потому и не знаю, что можно улучшить, а что исправить (#CONTENT в следующей версии будет отключен по умолчанию).
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 241

Post (Separately) Posted: Sun Mar 06, 2022 21:51    Post subject: Reply with quote

Потенциальная ошибка! вроде бы.

создаете файл с пятеркой тегов
<X>
....тут какие-то внутренние подтеги
</X>
<X>
....тут какие-то внутренние подтеги
</X>
<X>
....тут какие-то внутренние подтеги
</X>

по текущей встроенной логике этот неверный xml обкладывается тегом
<root$>...</root$>

Теперь берем, выделяем какой-нить подтег в узле последнего Х
и вызываем команду Copy XPath.
Получим: /root$/Х/подтег
А должны были: /root$/Х[5]/подтег

P.S.
Для XML, у которого сразу верная "окантовка" тегов одним внешний есть - там все так же странно/неверно.
Но. т.к. сперва в глаза бросилось именно на "особом"/неверном XML, то с него и начал описание проблемы.

Проверял на проге Altova XMLSpy - один из мировых лидеров по обработке XML, JSON и многих схожих файлов...


P.S. конечно же теги закрываются. Подправил пост после прочтения нижеследующего, чтоб потом, если что - читалось нормально.


Last edited by Destiny on Mon Mar 07, 2022 11:35; edited 1 time in total
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 23:17    Post subject: Reply with quote

А вы точно тег закрыли? В приведенном примере узлы X не закрываются, что может давать столь странный эффект. Лучше конечно полный XML, на котором проявляется ошибка, привести.

Те, документы, на которых возникает ошибка в плагине, они точно валидные?

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

Просьба проверить фикс - https://disk.yandex.ru/d/PumEzKRnVzCqvg
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 241

Post (Separately) Posted: Mon Mar 07, 2022 11:41    Post subject: Reply with quote

little-brother wrote:
Просьба проверить фикс

да, работает норм!

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

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

Подозрение: в том же файле 3.xml первые три строки:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="book.xsl"?>
<!DOCTYPE book SYSTEM "schema.dtd">

ИМХО, они не так показаны для дерева тегов.
Ожидается это:
Code:

первая строка:
узел xml, в таблице: KEY="version" VALUE="1.0"
                     KEY="encoding" VALUE="utf-8"
вторая строка:
узел xml-stylesheet, в таблице: KEY="type" VALUE="text/xsl"
                                KEY="href" VALUE="book.xsl"
третья строка:
узел DOCTYPE, в таблице: KEY="#root_element" VALUE="book"
                         KEY="#keyword" VALUE="SYSTEM"
                         KEY="#DTD_location" VALUE="schema.dtd"

Разбор ведется по схеме:
<!DOCTYPE root_element SYSTEM "DTD_location">
SYSTEM - ключевое слово определяющее, что DTD объявлен приватным внешним файлом разметки.
Бывает PUBLIC вариант - противоположность SYSTEM)))
Тогда схема DOCTYPE усложняется:
<!DOCTYPE root_element PUBLIC "DTD_name" "DTD_location">
И тогда у нас появляются в таблице чуть другие данные. К примеру для строки:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
мы увидим:
KEY="#root_element" VALUE="HTML"
KEY="#keyword" VALUE="PUBLIC"
KEY="#DTD_name" VALUE="-//W3C//DTD HTML 4.0 Transitional//EN"
KEY="#DTD_location" VALUE="http://www.w3.org/TR/REC-html40/loose.dtd"

Ну и XPath для этих строчек должен возвращать пустую строку. Ибо это препроцессорные директивы по сути для последующего валидного тела XML. Они не входят в XPath для XML.


Last edited by Destiny on Mon Mar 07, 2022 16:02; edited 2 times in total
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Mon Mar 07, 2022 12:15    Post subject: Reply with quote

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

<!DOCTYPE [Элемент верхнего уровня] [Публичность] "[Регистрация]//[Организация]//[Тип] [Имя]//[Язык]" "[URL]">


Так что скорее всего пока останется как есть, тем более, что это не сильно критично.
Back to top
View user's profile Send private message
Destiny



Joined: 15 Dec 2015
Posts: 241

Post (Separately) Posted: Mon Mar 07, 2022 12:19    Post subject: Reply with quote

little-brother wrote:
Для этого придется библиотеку парсера править, что несколько лениво.
В третьем случае вообще свой парсер нужен

Жаль, что библиотека так неподготовлена)))
Ну ок, будем жить с тем, что есть.
НО! третий случай разбирать ТАК глубоко не стоит. Свой пост отредактировал - показал достаточность разбора.
Т.е. выборку подэлементов [Регистрация]//[Организация]//[Тип] [Имя]//[Язык] вообще не ожидалось увидеть.
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Mon Mar 07, 2022 13:16    Post subject: Reply with quote

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



Joined: 15 Dec 2015
Posts: 241

Post (Separately) Posted: Sat Mar 12, 2022 13:16    Post subject: Reply with quote

Кажется еще один глюк разбора нашелся.
Строка атрибутов:
Checked="true" ID="1" Position="2" Prefix="services_items" jsonSettings="" minNumberLength="3"
можете вставить куда угодно для тестов - под любой тег.
При парсинге в таблице справа происходит разбор вот такой:

как видно - кое что не туда "полетело"(((
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Sat Mar 12, 2022 14:42    Post subject: Reply with quote

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



Joined: 15 Dec 2015
Posts: 241

Post (Separately) Posted: Sat Mar 12, 2022 16:12    Post subject: Reply with quote

little-brother wrote:
Это проблема в парсере, а копать его то еще удовольствие.

хотя же его
little-brother wrote:
Выбрал из-за небольшого размера и понятного кода, который при необходимости можно поправить (что и было сделано)
Laughing

глупое предложение - может новый парсер настало время выбрать для основы плагина?
Back to top
View user's profile Send private message
little-brother



Joined: 29 Sep 2021
Posts: 205

Post (Separately) Posted: Sat Mar 12, 2022 17:45    Post subject: Reply with quote

А смысл? Тот, который с XPath, я просто не соберу, да и сам плагин станет 1-2мб весить и при этом не использовать 99% функционала.

Немного покопал и баг нашелся. Плюс этой либы в том, что в ней мало кода и он достаточно понятен.
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 4 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