jjzjj

缩进

coder 2024-06-25 原文

我正在使用 libxml2 的 xmlwriter api 编写一个 xml 文件。

当我使用记事本打开文件时,缩进不正确。

有人知道怎么解决吗?

非常感谢。

最佳答案

我在这里有点冒进,但我会说“缩进不正确”是指它根本没有缩进。

默认情况下,libxml2 不会缩进您的 XML 文件,因为在 XML 中,空格(包括用于缩进的空格)是重要数据。也就是说,这个 XML 文件:

<root>
    <foo>Bar</foo>
</root>

在语义上不同于:

<root><foo>Bar</foo></root>

...因为第一个 XML 文件中的两个字符数据片段可能对您(程序员)很重要,因此,XML 在读取文件时将它们留在那儿,并且在写入时不会输出它们(除非有指示) .

也就是说,这是一段经常被滥用的 XML。遗憾的是,我见过的大多数 XML 都是缩进的。 libxml2 有选项可以在写入时自动输出缩进,并在读取时将其删除,但请注意:对此有一些警告:它可能会出错。文档说得更多。

我认为这个函数可能对你有帮助(我自己从来没有真正使用过它:-)),如果你想让它为你缩进:xmlTextWriterSetIndent

注意这里的警告:libxml2 FAQ

这里的信息:XML Specification

关于缩进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4537038/

有关缩进的更多相关文章

  1. ruby - Treetop 的 Vim 缩进文件(Ruby 解析器) - 2

    有没有人见过treetop的vim缩进文件?,Ruby解析器/生成器?我找到了一个vim语法高亮文件,但还没有看到用于缩进的文件。 最佳答案 看起来很简单——我只是创建一个文件~/.vim/indent/treetop.vim并使其唯一的内容runtime!indent/ruby.vim它似乎可以支持我所需要的一切。我认为它只是没有加载Ruby的缩进文件! 关于ruby-Treetop的Vim缩进文件(Ruby解析器),我们在StackOverflow上找到一个类似的问题:

  2. ruby - 在 emacs 中即时缩进 ruby​​ 代码 - 2

    如何让Emacs自动重新缩进Ruby代码?例如,在Emacs中,defhelloputs"hello"en输入“d”后,我希望它变成这样,defhelloputs"hello"end这是Vim中的默认设置,但我如何在Emacs中实现它? 最佳答案 ruby-electric已经是旧闻了。Emacs24有一个名为electric-indent-mode的内置次要模式,它会在一些字符后自动插入换行符,你当然可以将RETURN键重新映射到newline-and-indent(默认只映射到缩进)。在Emacs24中,您可以使用electri

  3. ruby-on-rails - 如何在 Vim 中缩进 Ruby 和 Rails 代码? - 2

    我只是想知道是否可以在Vim中自动缩进Rails代码而不是这样:validates:email,:presence=>true,:format=>{:with=>email_regex},:uniqueness=>{:case_sensitive=>false}为此:validates:email,:presence=>true,:format=>{:with=>email_regex},:uniqueness=>{:case_sensitive=>false} 最佳答案 做到这一点的最好方法实际上不是使用Vim中的内置对齐,而是使

  4. ruby - 更改 Sass 中的缩进 - 2

    如何在使用Sass时将输出CSS文件中的缩进从2个空格更改为4个空格?我正在使用扩展样式。我对Ruby一无所知,但我尝试阅读计算机上/Library/Ruby/Gems/1.8/gems/sass-3.2.1/中的每个rb文件。 最佳答案 sass-3.2.3/lib/sass/tree/visitors/to_css.rb有许多硬编码的双空格字符串('')用于缩进。如果您将它们全部替换为四个空格的字符串,它将按照您的说明编译您的css。 关于ruby-更改Sass中的缩进,我们在Sta

  5. Vim 中的 Ruby 代码自动缩进 - 2

    我已经将一个Ruby示例复制到Vim中,但事实证明这弄乱了缩进。我试图让Vim应用Ruby特定的缩进。为此,我取消了全局vimrc文件中以下行的注释:ifhas("autocmd")filetypepluginindentonendif然后在Vim中按下gg=G。现在它改变了一些缩进,但它仍然有一些错误:类定义不缩进。评论不会缩进并保留在行首。 最佳答案 在从外部源粘贴之前,使用这个命令:设置粘贴然后进入插入模式粘贴。 关于Vim中的Ruby代码自动缩进,我们在StackOverflow

  6. ruby - 撤消自动缩进 - 2

    当你使用带自动缩进模式的irb时,end语句会额外缩进一层deffoo...end而不是显示普通的缩进约定:deffoo...end因为你不能提前告诉irb你要在下一行越狱一个关卡。这个问题已经在其他地方得到解决,比如here或here,但都没有给出令人满意的答案。他们只是建议放弃。但是,如果我们可以最低限度地覆盖一些irb方法,以便自动缩进将插入空格而不是在提示区域,而是在您键入的行的开头,那么默认情况下,irb仍将插入空格,但我们将能够用退格键删除一些空格。这可能吗?或者,如果这不现实,那么是否可以让irb从屏幕上删除最后一行,并在您在包含end的行上按Enter后立即以适当的缩进

  7. Ruby:是否有缩进 case 语句的正确方法? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion许多博客和教程在实现case语句时都有不同的缩进。关于“何时”行,每个都有不同的缩进。使用case循环时是否有缩进的最佳实践?

  8. ruby - Ruby 的 Sublime 文本评论缩进问题 - 2

    我在ruby​​中使用SublimeText几个月后,我遇到了评论自动缩进的问题。缩进使用注释的缩进,并使用此缩进缩进以下所有代码。我希望自动缩进忽略(至少)或设置以前代码的缩进(最多),但根本不采用评论的缩进:我所有使用这个编辑器的同事都有同样的问题这是SublimeText重新缩进的示例代码classTestdefmethod1end#Badindentationdefmethod2somecodeenddefmethod3somecodeendend通缉:classTestdefmethod1end#Badindentationdefmethod2somecodeenddefme

  9. ruby-on-rails - ERB 模板中的缩进 - 2

    我在erb模板中有以下条目:#LoremIpsum...解析为:#LoremIpsum...zaz.propertyvalue如何删除前导空格,以便在已解析的模板中不缩进行?我想避免使用类似的东西:#LoremIpsum... 最佳答案 我能提供的唯一解决方案是hackish添加在之前条目:它在irb中输出irb(main):018:0>ERB.new(File.read('f.txt'),nil,'-').result=>"\n1\n\n2\n\n3\n\n"Rails文档声称,ERBtrim_mode的默认值为-http://e

  10. ruby-on-rails - like-vim emacs ruby​​ 缩进 - 2

    来自svn的ruby​​-mode,看起来等于1.1版本这里是哈希的emacs缩进User.all({:joins=>:account,:conditions=>{:delete_at=>nil}})在vim中也是一样User.all({:joins=>:account,:conditions=>{:delete_at=>nil}})如何在ruby​​模式下使emacs像vim一样缩进? 最佳答案 尝试M-x自定义模式;您将看到用于自定义Ruby缩进的选项。看起来您可能想将“RubyDeepIndentParen”更改为nil。

随机推荐