[wlx] xmltab - просмотр XML файлов
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
-
little-brother
- Сообщения: 205
- Зарегистрирован: Ср сен 29, 2021 16:45
А я-то и не знал - что они одиночные !little-brother писал(а):я на одиночных узлах не проверял, т.к. для них смысла нет. Как оказалось зря
Вот если бы отсечение по XPath работало))))))
Добавлено спустя 29 секунд:
можно просто сделать его всегда скрытым, ИМХО...little-brother писал(а):Можно добавить настройку для отключения этого столбца, если он так мешает.
И поиск тогда продолжать будет работать и визуализация будет ровно того, что представляешь увидеть, а не чего-то еще лишнего)))
-
little-brother
- Сообщения: 205
- Зарегистрирован: Ср сен 29, 2021 16:45
-
little-brother
- Сообщения: 205
- Зарегистрирован: Ср сен 29, 2021 16:45
Копирование сделать было просто, в отличии от обхода XPath. Разбор XPath достаточно нетивиальная задача, если самому писать.
Чтобы что-то появилось - надо просто написать об этом
Я ж не пользуюсь плагином, потому и не знаю, что можно улучшить, а что исправить (#CONTENT в следующей версии будет отключен по умолчанию).
Чтобы что-то появилось - надо просто написать об этом
Потенциальная ошибка! вроде бы.
создаете файл с пятеркой тегов
<X>
....тут какие-то внутренние подтеги
</X>
<X>
....тут какие-то внутренние подтеги
</X>
<X>
....тут какие-то внутренние подтеги
</X>
по текущей встроенной логике этот неверный xml обкладывается тегом
<root$>...</root$>
Теперь берем, выделяем какой-нить подтег в узле последнего Х
и вызываем команду Copy XPath.
Получим: /root$/Х/подтег
А должны были: /root$/Х[5]/подтег
P.S.
Для XML, у которого сразу верная "окантовка" тегов одним внешний есть - там все так же странно/неверно.
Но. т.к. сперва в глаза бросилось именно на "особом"/неверном XML, то с него и начал описание проблемы.
Проверял на проге Altova XMLSpy - один из мировых лидеров по обработке XML, JSON и многих схожих файлов...
P.S. конечно же теги закрываются. Подправил пост после прочтения нижеследующего, чтоб потом, если что - читалось нормально.
создаете файл с пятеркой тегов
<X>
....тут какие-то внутренние подтеги
</X>
<X>
....тут какие-то внутренние подтеги
</X>
<X>
....тут какие-то внутренние подтеги
</X>
по текущей встроенной логике этот неверный xml обкладывается тегом
<root$>...</root$>
Теперь берем, выделяем какой-нить подтег в узле последнего Х
и вызываем команду Copy XPath.
Получим: /root$/Х/подтег
А должны были: /root$/Х[5]/подтег
P.S.
Для XML, у которого сразу верная "окантовка" тегов одним внешний есть - там все так же странно/неверно.
Но. т.к. сперва в глаза бросилось именно на "особом"/неверном XML, то с него и начал описание проблемы.
Проверял на проге Altova XMLSpy - один из мировых лидеров по обработке XML, JSON и многих схожих файлов...
P.S. конечно же теги закрываются. Подправил пост после прочтения нижеследующего, чтоб потом, если что - читалось нормально.
Последний раз редактировалось Destiny Пн мар 07, 2022 10:35, всего редактировалось 1 раз.
-
little-brother
- Сообщения: 205
- Зарегистрирован: Ср сен 29, 2021 16:45
[s]А вы точно тег закрыли? В приведенном примере узлы X не закрываются, что может давать столь странный эффект. Лучше конечно полный XML, на котором проявляется ошибка, привести.
Те, документы, на которых возникает ошибка в плагине, они точно валидные?[/s]
Похоже для последнего узла XPath формируется с ошибкой. Для остальных вроде норм, т.е. надо цикл переписать.
Просьба проверить фикс - https://disk.yandex.ru/d/PumEzKRnVzCqvg
Те, документы, на которых возникает ошибка в плагине, они точно валидные?[/s]
Похоже для последнего узла XPath формируется с ошибкой. Для остальных вроде норм, т.е. надо цикл переписать.
Просьба проверить фикс - https://disk.yandex.ru/d/PumEzKRnVzCqvg
да, работает норм!little-brother писал(а):Просьба проверить фикс
и да - в своем посте я ошибся с закрытием тегов Х: вручную же набивал их. сейчас пост подправил, чтоб читалось на потом - адекватно.
Добавлено спустя 22 минуты:
Подозрение: в том же файле 3.xml первые три строки:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="book.xsl"?>
<!DOCTYPE book SYSTEM "schema.dtd">
ИМХО, они не так показаны для дерева тегов.
Ожидается это:
Код: Выделить всё
первая строка:
узел 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.
Последний раз редактировалось Destiny Пн мар 07, 2022 15:02, всего редактировалось 2 раза.
-
little-brother
- Сообщения: 205
- Зарегистрирован: Ср сен 29, 2021 16:45
Для этого придется библиотеку парсера править, что несколько лениво.
В третьем случае вообще свой парсер нужен
В третьем случае вообще свой парсер нужен
Так что скорее всего пока останется как есть, тем более, что это не сильно критично.<!DOCTYPE [Элемент верхнего уровня] [Публичность] "[Регистрация]//[Организация]//[Тип] [Имя]//[Язык]" "[URL]">
Жаль, что библиотека так неподготовлена)))little-brother писал(а):Для этого придется библиотеку парсера править, что несколько лениво.
В третьем случае вообще свой парсер нужен
Ну ок, будем жить с тем, что есть.
НО! третий случай разбирать ТАК глубоко не стоит. Свой пост отредактировал - показал достаточность разбора.
Т.е. выборку подэлементов [Регистрация]//[Организация]//[Тип] [Имя]//[Язык] вообще не ожидалось увидеть.
-
little-brother
- Сообщения: 205
- Зарегистрирован: Ср сен 29, 2021 16:45
Кажется еще один глюк разбора нашелся.
Строка атрибутов:
Checked="true" ID="1" Position="2" Prefix="services_items" jsonSettings="" minNumberLength="3"
можете вставить куда угодно для тестов - под любой тег.
При парсинге в таблице справа происходит разбор вот такой:

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

как видно - кое что не туда "полетело"(((
-
little-brother
- Сообщения: 205
- Зарегистрирован: Ср сен 29, 2021 16:45
хотя же егоlittle-brother писал(а):Это проблема в парсере, а копать его то еще удовольствие.
little-brother писал(а):Выбрал из-за небольшого размера и понятного кода, который при необходимости можно поправить (что и было сделано)
глупое предложение - может новый парсер настало время выбрать для основы плагина?
-
little-brother
- Сообщения: 205
- Зарегистрирован: Ср сен 29, 2021 16:45