7

我正在尝试获取 html 并生成一些保持相同结构的 json。

我正在尝试使用 pandoc,因为我之前在使用 pandoc 将格式 A 转换为格式 B 方面取得了一些成功。

我正在尝试转换此文件:

例子.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:解决方法。我找不到如何使用 pandoc 进行 HTML->JSON 转换。作为一种解决方法,我使用了评论中提出的建议,并使用Himalaya实现了一个解决方案,它是一个节点包。结果正是我所希望的,即使它没有使用 pandoc。

4

2 回答 2

3

目前,pandoc JSON 表示不是人类可读的,而是从 Haskell pandoc 数据类型(又名文档 AST)自动生成的。有一些讨论最终改变了这一点

我猜你正在寻找类似https://codebeautify.org/xmltojson的东西?似乎还有很多命令行工具可以做到这一点

于 2018-09-21T12:08:44.307 回答
3

Pandoc,它是一个转换文档的工具,文档的json表示,它只是 Pandoc 可以为 AST(抽象语法树)处理的另一种表示

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

要求 pandoc 输出 ajson是要求 AST 树的json格式,

如果我理解正确,您将需要像Python xmljsonxml模块这样的json转换工具或像这样的在线工具。

正如您所想象的那样,有很多工具可以完成这项工作,只需将 google XML 转换为 JSON。

pandoc 中使用的jsonAST 表示,它通常用于从 pandoc 输出它,并将其通过管道传输到另一个可以处理json文件的程序中,因此您可以更改 AST 并制作过滤器来操作文档的结构。

于 2018-10-03T22:23:56.547 回答