@ArtLash

Что за формат файла XML?

Есть вот такой файл, расширение указывает что это XML, внутри XML, но как его преобразовать в JSON, с помощью онлайн конверторов не получается, а этот файл необходимо преобразовать в JSON потому что программа в которую его загружает читает только JSON или XML а этот формат не видит.
  • Вопрос задан
  • 417 просмотров
Решения вопроса 7
trapwalker
@trapwalker
Программист, энтузиаст
XML - это универсальный формат, он определяет только синтаксис, на его базе строят более высокоуровневые форматы. Например на нём основаны docx, xlsx и многие многие другие. Любой прогреммст вместо своего велосипеда может описать схему, которой должны удовлетворять структура тегов и форматы данных XML-файла, и реализовать сохранение (сериализацию) и загрузку (десериализацию) в\из этого формата.
Что у вас там за программа вы не написали, кно ничего вы там вручную сами не преобразуете. Нет какого-то универсального и единственного способа. Вы просто фантазируете и при этом скорее всего ошибаетесь в предпосылках. Может быть, конечно, у какой-то там программы программист в какой-то момент и перешел в какой-то версии на новый формат файла, но вы сами ничего с этим поделать не сможете. Если прога сама не загрузит и не сконвертирует, то...

Ну вот вам пример. Вы едете на дизельной машине, закончилась солярка, а на заправке только бензин. Вы по нслышке понимаете, что и то и то жидкости, а жидкости иногда смешивают, некоторые жидкости (например электролит в аккумуляторе) состоят из воды и серной кислоты и иногда там что-то туда доливают. Вот и спрашиваете, что долить к бензину и как его с чем смешать, чтобы солярка получилась.
Никак.
Это называется слышал звон, но не знает где он.
Это так не работает. Выясняйте больше подробностей про свою эту программу.
Ответ написан
Комментировать
XML невозможно автоматически преобразовать в JSON - это разные форматы совершенно.
Вот возьмём для примера этот кусок:
<DeletedDocuments NAME="DeletedDocuments" TYPE="Unknown" STATUS="0"> </DeletedDocuments>

Какое у него должно быть JSON-представление? Допустим, атрибуты можно представить так:
{
  "DeletedDocuments": {
    "NAME": "DeletedDocuments",
    "TYPE": "Unknown",
    "STATUS": "0",
  }
}

Но что делать с дочерними элементами, которых в примере нет, но вообще они предполагаются - как назвать поле с ними? Автоматическому конвертеру без разницы, а вот получателю данных это важно, иначе он содержимое не найдёт. Да и атрибуты он может ожидать в соврешенно другом каком-то виде.

Но этот файл и вправду странный. То, что он невалидно начинается, спишем на то, что вы криво скопировали, но дальше внутри есть вот такая штука:
<PrimaryObjectID630-1318412216795-1132501759-12-0-35-1ctID>
и она выглядит очень кривой.
Ответ написан
@alexalexes
Чтобы можно было работать с этим как с XML, нужен специальный заголовок в начале файла. Например, такой:
<?xml version="1.0" encoding="UTF-8"?>
Синтаксис еще поломан местами:
COLLECTION>

OR:wt.part.W2-0-35-10ctID>

/Default/Техтация/!ТехнологическolderPath>

<КонтекстныКонтекст>

eасти/300000-309999

Нет закрывающегося тега COLLECTION.
За амперсантами нужно следить, как их экранировать в ссылках:
<Ссылка>serverwcal/Winl/app/#ptc1/tcomp/infoPage?oid=O9052&u8=1Ссылка>

Еще куча недочетов, которые нужно приглаживать в редакторе с подсветкой синтаксиса.
Такое ощущение, что вы из бумажного источника взяли этот фрагмент и прогнали через FineReader.
Ответ написан
Комментировать
@rPman
Причина скорее всего не в том что файл xml а что его формат отличается от того, что ожидает ваша программа.

Открываете документацию к ней или хотя бы пример json который она понимает, и сравниваете.

Преобразование формата, если не нужно работать с данными (т.е. все справочники соответствуют необходимому нужно только название атрибутов и структуру поменять) то это работа на 15 минут, мало того ее chatgpt сделает по нескольким примерам json и xml
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Есть вот такой файл, расширение указывает что это XML, внутри XML, но как его преобразовать в JSON, с помощью онлайн конверторов не получается, а этот файл необходимо преобразовать в JSON потому что программа в которую его загружает читает только JSON или XML а этот формат не видит.

Если кратко - то тебе нужен программист который это сделает.

Если более широко - то не существует однозначного преобразования XML-JSON с полным сохранением семантики.
XML это очень сложный формат. У него есть элементы комментариев. И CDATA которые детализируют узел (Node).
У XML может использоваться схема и namespace и это еще сильнее вносит вопросы в само преобразование.

То что приведено в самом вопросе - не является корректным XML файлом. Как минимум не хватает
родительского элемента. Без этого парсеры не будут такое разбирать. Короче ты имеешь дело
с каким-то огрызком файла.

Поэтому. Ты приведи пример JSON файла который надо получить на выходе - и сделай задание во фриланс.
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
XML это Markup Language, то есть язык разметки, где произвольный текст может быть структурирован метками.

Например HTML это близкий родственник XML (но не потомок и не родитель).

Поэтому прямого преобразования XML в JSON не существует и быть не может.
Но в XML можно описать писать конкретную структуру, для которой можно написать конкретный скрипт, чтобы преобразовывать.
Если у вас разовая задача, проще руками сделать.
Ответ написан
Комментировать
@Artikul2
Ну, это даже не XML в его классическом понимании. И тем более его не конвертировать никогда в JSON. Даже более того, если он и конвертируется, то на 99% уверен, что ваша программа будет ожидать какую то другую структуру JSON.
В вашем случае надо понять, какой JSON нужен, с какими вложениями и структурой. И сделать его вручную.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы