[wlx] xmltab - просмотр XML файлов
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3, 4, 5, 6, 7  Next  :| |:
Total Commander -> Плагины Total Commander

#46:  Author: little-brother PostPosted: Sun Mar 06, 2022 18:50
    —
Можно добавить настройку для отключения этого столбца, если он так мешает.

#47:  Author: Destiny PostPosted: Sun Mar 06, 2022 18:50
    —
little-brother wrote:
я на одиночных узлах не проверял, т.к. для них смысла нет. Как оказалось зря

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

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

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

можно просто сделать его всегда скрытым, ИМХО...
И поиск тогда продолжать будет работать и визуализация будет ровно того, что представляешь увидеть, а не чего-то еще лишнего)))

#48:  Author: little-brother PostPosted: Sun Mar 06, 2022 18:53
    —
Quote:
не знал - что они одиночные

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

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

Пока надеяться на то, что появится XPath в каком либо виде, не стоит.

#49:  Author: Destiny PostPosted: Sun Mar 06, 2022 18:55
    —
little-brother wrote:
Пока надеяться на то, что появится XPath в каком либо виде не стоит

Главное, что есть его копирование! Офигенно вовремя появилось!

#50:  Author: little-brother PostPosted: Sun Mar 06, 2022 20:21
    —
Копирование сделать было просто, в отличии от обхода XPath. Разбор XPath достаточно нетивиальная задача, если самому писать.

Чтобы что-то появилось - надо просто написать об этом Smile Я ж не пользуюсь плагином, потому и не знаю, что можно улучшить, а что исправить (#CONTENT в следующей версии будет отключен по умолчанию).

#51:  Author: Destiny PostPosted: Sun Mar 06, 2022 21:51
    —
Потенциальная ошибка! вроде бы.

создаете файл с пятеркой тегов
<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

#52:  Author: little-brother PostPosted: Sun Mar 06, 2022 23:17
    —
А вы точно тег закрыли? В приведенном примере узлы X не закрываются, что может давать столь странный эффект. Лучше конечно полный XML, на котором проявляется ошибка, привести.

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

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

Просьба проверить фикс - https://disk.yandex.ru/d/PumEzKRnVzCqvg

#53:  Author: Destiny PostPosted: Mon Mar 07, 2022 11:41
    —
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

#54:  Author: little-brother PostPosted: Mon Mar 07, 2022 12:15
    —
Для этого придется библиотеку парсера править, что несколько лениво.
В третьем случае вообще свой парсер нужен
Quote:

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


Так что скорее всего пока останется как есть, тем более, что это не сильно критично.

#55:  Author: Destiny PostPosted: Mon Mar 07, 2022 12:19
    —
little-brother wrote:
Для этого придется библиотеку парсера править, что несколько лениво.
В третьем случае вообще свой парсер нужен

Жаль, что библиотека так неподготовлена)))
Ну ок, будем жить с тем, что есть.
НО! третий случай разбирать ТАК глубоко не стоит. Свой пост отредактировал - показал достаточность разбора.
Т.е. выборку подэлементов [Регистрация]//[Организация]//[Тип] [Имя]//[Язык] вообще не ожидалось увидеть.

#56:  Author: little-brother PostPosted: Mon Mar 07, 2022 13:16
    —
Библиотека с базовым функционалом. Выбрал из-за небольшого размера и понятного кода, который при необходимости можно поправить (что и было сделано). А то, что часть функционала нет - издержки Smile

#57:  Author: Destiny PostPosted: Sat Mar 12, 2022 13:16
    —
Кажется еще один глюк разбора нашелся.
Строка атрибутов:
Checked="true" ID="1" Position="2" Prefix="services_items" jsonSettings="" minNumberLength="3"
можете вставить куда угодно для тестов - под любой тег.
При парсинге в таблице справа происходит разбор вот такой:

как видно - кое что не туда "полетело"(((

#58:  Author: little-brother PostPosted: Sat Mar 12, 2022 14:42
    —
Фигово. Это проблема в парсере, а копать его то еще удовольствие.
Насколько могу судить проблема в пустых значениях, т.е. "".

#59:  Author: Destiny PostPosted: Sat Mar 12, 2022 16:12
    —
little-brother wrote:
Это проблема в парсере, а копать его то еще удовольствие.

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

глупое предложение - может новый парсер настало время выбрать для основы плагина?

#60:  Author: little-brother PostPosted: Sat Mar 12, 2022 17:45
    —
А смысл? Тот, который с XPath, я просто не соберу, да и сам плагин станет 1-2мб весить и при этом не использовать 99% функционала.

Немного покопал и баг нашелся. Плюс этой либы в том, что в ней мало кода и он достаточно понятен.



Total Commander -> Плагины Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3, 4, 5, 6, 7  Next  :| |:
Page 4 of 7

Powered by phpBB © 2001, 2005 phpBB Group