有没有办法使用TextWrangler来清理/整理凌乱的XML?

时间:2010-06-10 20:24:55

标签: xml

我不需要它来验证(虽然这样会很好我不认为文字管理员这样做)但是要清理凌乱的.xml。

这个例子......

<some><foo>
bar</foo></some>

到...

<some>
   <foo>bar</foo>
</some>

谢谢-MW

5 个答案:

答案 0 :(得分:6)

如果您正在使用工具,大多数编辑都会有某种“整洁”功能。

  • 在NotePad ++中:TestFX - &gt; TestFX HTML Tidy - &gt; Tidy:Reindent XML
  • 在Visual Studio中:Ctrl-K,Ctrl-D(或编辑 - &gt;高级 - >格式文档)

TextWrangler的快速谷歌会出现这个问题 - http://magp.ie/2010/02/15/format-xml-with-textwrangler/

答案 1 :(得分:3)

作为http://magp.ie/2010/02/15/format-xml-with-textwrangler/指令的更新和@Cykoduck的评论,使其在TextWrangler版本4中运行。

需要更改脚本以从STDIN而不是临时文件获取输入,因此需要更改xmllint的第一次调用:

#!/bin/sh
xmllint --c14n - | XMLLINT_INDENT=$'\t' xmllint --encode UTF-8 --format -

这种方式也适用于TextWrangler 4。调用脚本的菜单项已移至此版本的Text菜单。

参考链接:https://groups.google.com/forum/?fromgroups#!topic/textwrangler/FePYfNKi4rs

答案 2 :(得分:2)

我也使用了http://magp.ie/2010/02/15/format-xml-with-textwrangler/

上的方法

但我修改了它,因为我得到的关于xml的错误我试图格式化。我的剧本只是:

#!/bin/sh
xmllint "$*" | XMLLINT_INDENT=$'\t' xmllint --encode UTF-8 --format -

我取出了W3C规范格式的格式来修复我的错误。

答案 3 :(得分:2)

该脚本仍然无法在4.5下工作。

我查了https://groups.google.com/forum/?fromgroups=#!topic/textwrangler/FePYfNKi4rs 并且它有一个有效的脚本。

#!/bin/sh 

XMLLINT_INDENT=$'\t' xmllint --format --encode utf-8 -

答案 4 :(得分:0)

如果您使用的是Mac,最简单的方法是以这种方式创建脚本:

#!/bin/bash
pbpaste | xmllint --c14n - | XMLLINT_INDENT=$'\t' xmllint --encode UTF-8 --format - | pbcopy

右键单击该文件,单击“获取信息”,然后将“打开方式”更改为终端。这样,您可以通过单击图标从任何位置处理主剪贴板中的xml。即。复制单击粘贴。你也可以用另一个包装,以便它可以双向访问。

pbpaste | ./tidy.sh | pbcopy # where tidy.sh is available to TextWrangler