代码之家  ›  专栏  ›  技术社区  ›  Charles Roper

如何控制添加元素的rexml格式?

  •  0
  • Charles Roper  · 技术社区  · 15 年前

    我是在一组XML文件(plist)中添加一些简单元素。我正在处理的现有XML元素如下所示:

    <dict>
      <key>background</key>
      <string>#FFFFFF</string>
      <key>caret</key>
      <string>#000000</string>
      <key>foreground</key>
      <string>#000000</string>
      <key>invisibles</key>
      <string>#BFBFBF</string>
      <key>lineHighlight</key>
      <string>#00000012</string>
      <key>selection</key>
      <string>#BAD6FD</string>
    </dict>
    

    我在一个名为 settings 我正在添加新的 <key> <string> 元素,并向这些元素添加一些文本。简单到目前为止:

    settings.add_element('key').add_text('gutter')
    settings.add_element('string').add_text('#282828')
    

    问题是,当我把这个写出来时,XML看起来像这样(注意最后一行):

    <dict>
      <key>background</key>
      <string>#FFFFFF</string>
      <key>caret</key>
      <string>#000000</string>
      <key>foreground</key>
      <string>#000000</string>
      <key>invisibles</key>
      <string>#BFBFBF</string>
      <key>lineHighlight</key>
      <string>#00000012</string>
      <key>selection</key>
      <string>#BAD6FD</string>
    <key>gutter</key><string>#282828</string></dict>
    

    我正在使用 write (REXML::Document) 编写XML的方法(目前为$stdout):

    tmtheme.write( $stdout )
    

    也试过

    tmtheme.write( $stdout, 2 )
    

    但这些并不能返回期望的结果。以下看起来很有希望:

    tmtheme.write( $stdout, 2, true )
    

    但这给了我一个 known error .更新:刚在Ruby1.9上尝试过,虽然我没有得到erro,但它没有帮助-我仍然得到上面示例中所示的格式。

    有人能告诉我如何格式化XML,使其符合文档其余部分的格式化样式吗?不一定要用rexml来完成。

    1 回复  |  直到 15 年前
        1
  •  3
  •   Charles Roper    15 年前

    罗伯特·克莱姆和亚伦·帕特森 came up with the goods 在Ruby Talk列表中。

    这是我第一次在SOF上提出一个完全空白的问题。