java - 获取 DOM 并按字母顺序重新排列节点和属性

标签 java xml dom

我想读入 XML 文档,以确定的顺序重新排列节点和属性,例如:

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com</groupId>
    <artifactId>foobar</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</project>

变成:

<project>
    <artifactId>foobar</artifactId>
    <groupId>com</groupId>
    <modelVersion>4.0.0</modelVersion>
    <version>0.0.1-SNAPSHOT</version>
</project>

我也想做属性和缩进!

最佳答案

您的示例没有任何属性,通常您无法控制属性的顺序。但是在 XSLT 中对元素进行排序很容易:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:template match="*">
  <xsl:copy>
    <xsl:apply-templates>
      <xsl:sort select="name()"/>
    </xsl:apply-templates>
  </xsl:copy>
</xsl:template>

</xsl:stylesheet>

关于java - 获取 DOM 并按字母顺序重新排列节点和属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17502194/

相关文章:

android - 如何在android中制作圆弧

ios - iOS 中的 XML 解析问题

javascript - 如何在定义 <body> 元素后立即运行 JavaScript 代码?

java - 通过 JDBC 连接的 SQL 查询速度较慢,具体取决于访问数据源对象的位置

java - 数组上的 Wordsearch 难题 nullpointerException

java - 如何从 Jython 执行交互式 shell?

php - 在 PHP 中将 MYSQL 表数据直接转换为 XML

用于编辑保留格式和注释的 XML 的 Python 库

javascript - DOMContentLoaded 在导航后未触发,但在使用 javascript_pack_tag 时在页面重新加载时触发

java - 覆盖外部文件中的现有数据,我该如何停止?