首页 文章

使用pandoc将html转换为json

提问于
浏览
4

我正在尝试使用html并生成一些保持相同结构的json .

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

我正在尝试转换此文件:

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的初学者,我无法找到如何调整这种行为 .

你知道我如何获得所需的输出吗?你知道另一种可以做到这一点的工具吗?该工具或其编写的语言无关紧要 .

谢谢 .

Edit :您可以在pandoc online tool上在线测试该行为 .

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

2 回答

  • 2

    目前,pandoc JSON表示不是非常易读的,而是从Haskell pandoc数据类型(也就是文档AST)自动生成的 . 有一些discussion to change that eventually .

    我猜你在找像https://codebeautify.org/xmltojson这样的东西?似乎也有plenty of commandline-tools that do that .

  • 1

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

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

    问pandoc,输出 json ,就是要求它的 json 格式的AST树,

    如果我理解正确,你需要的东西更像是 xmljson 转换器,如Python xmljson模块或在线工具,如this one .

    当你想象它时,有很多工具可以用于这项工作,只需谷歌XML到JSON转换 .

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

相关问题