YAML如何表示XML属性?

Gav*_*vin 5 xml yaml

如何在不丢失信息的情况下将此XML转换为YAML并再次返回?

<foo bar='one' baz='two'>Lorem Ipsum</foo>
Run Code Online (Sandbox Code Playgroud)

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

foo:
  attr: 
    - bar: one
    - baz: two
  value: Lorem Ipsum
Run Code Online (Sandbox Code Playgroud)

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

foo ( bar: one, baz: two ): Lorem Ipsum
Run Code Online (Sandbox Code Playgroud)

Xav*_*hay 3

如果您可以假设不能有重复的属性名称,则可以简化您的猜测以使用映射:

foo:
  attr: 
    bar: one
    baz: two
  value: Lorem Ipsum
Run Code Online (Sandbox Code Playgroud)

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

foo: {attr: {bar: one, baz: two}, value: lorum ipsum}
Run Code Online (Sandbox Code Playgroud)

...虽然这并不常见。