Преобразование HTML в JSON с Pandoc - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь взять html и сгенерировать некоторый json, который сохраняет ту же структуру.

Я пытаюсь использовать pandoc, поскольку у меня был некоторый успех в преобразовании вещей из формата A в формат Bраньше использовал pandoc.

Я пытаюсь преобразовать этот файл:

example.html

<p>Hello guys! What's up?</p>

С помощью команды:

pandoc -f html -t json example.html

То, что я ожидаю, выглядит примерно так:

[{ "p": "Hello guys! What's up?"}]

То, что я получаю, это:

[
  { "Para":
    [
      {"t": "Str", "c": "Hello"},
      {"t": "Space"},
      {"t": "Str", "c": "guys!"},
      {"t": "Space"},
      {"t": "Str", "c": "What's"},
      {"t": "Space"},
      {"t": "Str", "c": "up?"}
    ]
  }
]

Проблема заключается в том, что когда pandoc читает текстовое содержимое, оноотделяет каждое слово на основе символа пробела и составляет из него массив, в то время как я ожидал, что pandoc поймет, что вся строка - это один элемент.

Я новичок в pandoc, и я не былудалось выяснить, как настроить это поведение.

У вас есть представление о том, как я могу получить желаемый результат?Знаете ли вы еще один инструмент, который может сделать это?Инструмент или язык, на котором он написан, не имеет значения.

Спасибо.

Редактировать : Вы можете проверить это поведение онлайн на этом онлайн-инструменте pandoc..

Редактировать 2 : Обходной путь.Я не мог найти, как сделать преобразование HTML-> JSON с pandoc.В качестве обходного пути я использовал предложение, предложенное в комментариях, и реализовал решение, используя Гималаи , который представляет собой пакет узлов.Результат - именно то, чего я желал, даже если он не использует pandoc.

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Pandoc, это инструмент для преобразования документов, представление документа json, это просто еще одно представление, которое Pandoc может обработать для AST (абстрактного синтаксического дерева)

Original Document --> Pandoc's AST --> Output Document
                   |                |
                pandoc           pandoc

Запрашивая pandoc,выведите json, чтобы запросить дерево AST в его формате json,

Если я правильно понимаю, вам понадобится что-то более похожее на преобразователь xml в json, например Модуль Python xmljson или онлайн-инструмент, такой как этот .

Существует множество инструментов для этой работы, как вы ее себе представляете, просто конвертируйте Google XML в JSON.

Представление json AST, используемое в pandoc, обычно оно используется для вывода его из pandoc и передачи его в другую программу, которая может обрабатывать файлы json, так что вы можете изменить AST и сделать фильтрыманипулировать структурой вашего документа.

0 голосов
/ 21 сентября 2018

В настоящее время представление pandoc JSON не очень удобочитаемо, но автоматически генерируется из типов данных Haskell pandoc (он же документ AST).Существует некоторое обсуждение , чтобы изменить это в конечном итоге .

Я полагаю, вы ищете что-то вроде https://codebeautify.org/xmltojson? Также, похоже, существует множество инструментов командной строки, которыесделай это .

...