如何将pcap类型(PDML)的xml转换为json并以适当的格式打印它

时间:2013-01-20 13:13:12

标签: ruby xml json pcap

  1. 是否可以将xml转换为json,反之亦然,对于pcap类型的xml?
  2. to_json会转换它,但整个输出会打印在一行中。如何获得格式正确的输出?

1 个答案:

答案 0 :(得分:0)

您可以使用http://cobravsmongoose.rubyforge.org库来做到这一点。这是一个基于上面链接代码的简单示例:

require 'cobravsmongoose'
xml = '<pdml><packet><proto name="geninfo" pos="1" showname="General information" size="74">...' # PDML document contents
json = CobraVsMongoose.xml_to_json(xml)
# => "pdml":{"packet":{"proto":[{"@name":"geninfo","@pos":"1","@showname":"General information","@size":"74",...

我在http://gd.tuwien.ac.at/.vhost/analyzer.polito.it/30alpha/docs/dissectors/PDMLSpec.htm使用了ICMP示例来测试上面的转换。

要解决有关如何打印输出的原始问题的注释,可以使用JSON库中的#pretty_generate方法来执行此操作:

require 'json'
pretty_json = JSON.pretty_generate(JSON.parse json) # same json as above
puts json