是否有任何正式的方法或已知的方法来规范化 xml 文件以生成差异?
似乎有很多关于 WRT 工具在 xml 之间生成差异的问题,但还没有这个问题,所以任何知道这个问题的人都会向我展示一个链接或粘贴任何人已经解决了这个问题的示例。
规范化 xml 文件意味着,
- 重新排序属性的外观
- 重新排序标签的外观(可通过命令行选项选择)
- 插入行结尾(CR/CR+LF/LF)(如果关闭标签末尾没有
- 插入缩进选项卡) (空格)
- 删除多余的空格和行结尾
然后您可以清楚地比较 xml 文件以查看更新了哪一部分。
我想在签入版本控制存储库之前,尽可能快地使用该例程在 unix 环境中进行规范化。
There seems to be many questions WRT tool to generate diffs between xmls, but there wasn't this question yet, so anyone who knows this show me a link or paste any example anyone already solved this problem.
Canonicalizing an xml file means,
- reordering the appearance of attributes
- reordering the appearance of tags (selectable by command line option)
- insert line ending(CR/CR+LF/LF) if there isn't at the end of a close tag
- insert indentation tab(space)
- remove redundant spaces and line endings
And then you can cleanly diff the xml files to see which part was updated.
I want to use the routine to canonicalize in unix environment, as quick as possible, before checking in to version control repository.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
XMLStarlet 具有规范化模式 (
c14n
)。XMLStarlet has a canonicalization mode (
c14n
).相反,您可以使用 xmldiff 工具: 在您的应用程序中使用 XML Diff 和 Patch 工具应用程序
XML 差异和补丁 GUI 工具
Instead, you could use the xmldiff tool: Using the XML Diff and Patch Tool in Your Applications
The XML Diff and Patch GUI Tool