YAML如何表示XML属性?

时间:2015-02-07 06:16:45

标签: xml yaml

如何将此XML转换为YAML并再次返回而不会丢失信息?

<foo bar='one' baz='two'>Lorem Ipsum</foo>

我最好的猜测是这样的,但对我来说看起来太冗长了:

foo:
  attr: 
    - bar: one
    - baz: two
  value: Lorem Ipsum

第二个问题:YAML中的属性是否有与此类似的语法?

foo ( bar: one, baz: two ): Lorem Ipsum

2 个答案:

答案 0 :(得分:2)

如果您可以假设您不能拥有重复的属性名称,那么您的猜测可以简化为使用地图:

foo:
  attr: 
    bar: one
    baz: two
  value: Lorem Ipsum

如果您想要一个更紧凑的表单,您可以使用YAML流样式,它类似于JSON,并且与您提供的第二个问题最接近:

foo: {attr: {bar: one, baz: two}, value: lorum ipsum}

......但它并不常见。

答案 1 :(得分:2)

存在从XML转换为JSON并返回的各种约定,这些约定也直接转换为YAML。

您可以在此处找到一个列表:http://wiki.open311.org/JSON_and_XML_Conversion/

有一个名为 xmljson 的python库可以实现其中的大部分。