我不需要它来验证(虽然这样会很好我不认为文字管理员这样做)但是要清理凌乱的.xml。
这个例子......
<some><foo>
bar</foo></some>
到...
<some>
<foo>bar</foo>
</some>
谢谢-MW
答案 0 :(得分:6)
如果您正在使用工具,大多数编辑都会有某种“整洁”功能。
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