代码之家  ›  专栏  ›  技术社区  ›  Josh Russo

用于规范XML中标记顺序的工具[已关闭]

  •  0
  • Josh Russo  · 技术社区  · 7 年前

    我有一个手动维护的XML文件集合,我需要清理并比较它们。我已经找到了很多工具来清理缩进,但我也希望以一致的顺序重新排列标签。我显然可以编写一个脚本来实现这一点,但如果我需要它,我相信其他人也会遇到这个问题。

    有谁知道有一种工具可以重新排序标记,以便我可以更轻松地比较多个XML文件?

    2 回复  |  直到 7 年前
        1
  •  2
  •   Michael Kay    7 年前

    如果XML数据在元素之间没有明显的顺序,那么可以很容易地规范化顺序:

    <xsl:template match="*">
     <xsl:copy>
      <xsl:copy-of select="@*"/>
      <xsl:apply-templates select="*">
        <xsl:sort select="namespace-uri()"/>
        <xsl:sort select="local-name()"/>
      ...
     ...
    ...
    
        2
  •  1
  •   kjhughes    7 年前

    与XML属性的顺序不同,XML元素的顺序在默认情况下是重要的。因此,工具通常会

    请参阅支持的工具 XML Normalization Recommendation 或者 Canonical XML Recommendation 如果应用程序需要标准化属性顺序。

    当然,XSLT可以用于一般转换,包括根据用户定义的标准对元素重新排序。