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 

Single Post  Topic: [wlx] XML Review - просмотр XML и JSON файлов 
Author Message
Destiny



PostPosted: Thu Mar 17, 2022 13:09    Post subject: Reply with quote

olegvsk wrote:
Я автор

Урра!!! День добрый!
Собсно по этому - но более по второму вашему продукту - Cert View есть вопросы/предложения.
В этой теме, значится, пройдемся то по этому продукту...
В теме про Cert View(https://forum.wincmd.ru/viewtopic.php?p=135008) напишу про неё.

XML Review - выполняет валидацию. Что по идее хорошо! НО! часто есть нужда в просмотре
ЧАСТИЧНЫХ xml! Т.е. файлов, где нет одного элемента верхнего уровня. А есть лишь список
подэлементов. Ваш плагин в этом случае отображает лишь первого представителя из этого
списка и всё. Потому как есть ошибка валидации КАК БЫ ожидаемого настоящего XML дерева.
НО в этом конкретном случае было бы очень полезно иметь некую псевдозаглушку, которую
можно даже настраивать в диалоге настроек, работающую как КОРНЕВОЙ фиктивный первый
элемент. Так мы бы хоть и искусственно, но вышли бы из сложного положения. К примеру,
по умолчанию, пусть это будет тег <ROOT_TAG>....</ROOT_TAG>
И тогда, если встречается ошибка парсинга
Position ....: В документах XML допускается только один элемент верхнего уровня.
то, если в настройках включено - обкладывать все содержимое файла тегом ROOT_TAG - значит
эта ошибка была бы нивелирована! И тогда все содержимое файла по сути стало бы однозначно
валидным, т.к. оно будет обложено одним тегом верхнего уровня, что и требуется по правиламWink

При генерации XPath для повторяющихся тегов вы не вставляете
адресный идентификатор [i], где i - это число по порядку в повторе.
Code:

<LIST_OF_PERSONS>
  <DATA>
    <NAME>...</NAME>
    <ID>...</ID>
    <PASSPORT>
      <SERIJA>...</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>

И вот для второй ДАТЫ для тега "Серия Паспорта", к примеру, XPath должен быть вида:
/LIST_OF_PERSONS/DATA[2]/PASSPORT/SERIJA

А у вас будет написано просто /LIST_OF_PERSONS/DATA/PASSPORT/SERIJA

вот сторонний ресурс есть, где можно проверить мои слова:
https://xmltoolbox.appspot.com/xpath_generator.html


Тоже и для JSON файла. Самой валидации теперь вроде как нет в меню, т.е. саму
ошибку вы не пишите, НО и парсинг файла далее не производите, если встретили её.
К примеру, в некоторых JSON файлах после элементов пишутся комментарии.
Code:

    "Common": {
        "ButtonRadius": 0,
        "WindowBorderRadius": 3, // 0 - None, 1 - Top, 2 - Both, 3 - Small
        "ClientBackColor": "1d8abd",
        "GroupBoxColor": "1586bb", // Required
        "PaintClassicFocus": true
    }

стандартом файла они вроде не предусмотрены, и ваш парсинг обрывается на
Code:

{
    "Common":{
        "ButtonRadius":0,
        "WindowBorderRadius":3
    }
}

И хорошо бы, чтоб в такой ситуации, во-первых, все же причина прекращения парсинга писалась.
Код явно же по какой-то причине прекратил работу на символах ": 3" или " //"?
Ну и во-вторых, чтобы подобное прощалось для JSON файлов. Понятно, что список "ошибок",
подобных этой, еще тока будет наполняться, но надо же с чего-то начинать)))
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group