В настоящее время я пытаюсь различать различные текстовые форматы с последовательным интерфейсом. В основном между XBRL, XML, CSV и JSON.Дифференцирование XBRL, XML, CSV и JSON
Я хотел бы предположить, что, проверяя шаги, если мы используем синтаксический анализатор для синтаксического анализа XBRL/XML и возвращаемся без какого-либо исключения, то он является допустимым XML-документом и нуждается в дальнейшей проверке, чтобы увидеть, является ли этот документ регулярный xml или xbrl.
Если первая проверка не удалась, попробуйте разобрать csv. Если разбор csv возвращает исключение, попробуйте разбор в качестве JSON. Если ни одно из указанных выше не работает, это недопустимый документ.
Будет ли это исключительным способом определения типа текстового формата, который является документом? Или есть лучший способ? (читая первые несколько байтов документа и т. д.).
благодаря
Возможно, некоторые данные могут интерпретироваться более чем одним способом (например, одна строка в двойных кавычках может быть действительной CSV * и * действительной JSON), но в этом случае нет «идеального» ответа в любом случае. Если все в порядке, используйте любой допустимый формат, а затем прочитайте несколько байтов и закажите свои тесты соответственно (например, lota '<' предлагает сначала попробовать XML), это сэкономит время - просто перейдите к первому, который не дает исключения. Наконец, обратите внимание, что для CSV существует множество «параметров» (например, типы цитирования, встроенные новые строки и т. Д.). - IOW огромное разнообразие слегка несовместимых форматов CSV. :( –