gpt4 book ai didi

java - 在 Java 中对 XML 进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:27:23 24 4
gpt4 key购买 nike

我有一个类似于下面的 XML,需要使用日期字段对其进行排序。

<root> 
<Node1>
<date></date>
</Node1>
<Node1>
<date></date>
</Node1>
<Node1>
<date></date>
</Node1>
<Node1>
<date></date>
</Node1>
<Node2>
<date></date>
</Node2>
<Node2>
<date></date>
</Node2>
<Node2>
<date></date>
</Node2>
<Node2>
<date></date>
</Node2>
</root>

我想根据日期(比如升序)对 XML 进行排序,而不管日期是在节点 1 还是节点 2 下。实际上,在 Java 代码中我有两个单独的列表,一个包含 Node1 对象,另一个包含 Node2 对象。我可以在 java 中以任何顺序分别对列表进行排序。但是我需要对日期进行排序,而不管它出现在 XML 上的节点如何。 在 Java 中以这种方式排序的最佳方法是什么?

实际上,我正在使用 Castor 将 java 对象编码为 XML。如果您知道这可以用 Castor 完成,那就太好了!

最佳答案

我会使用 XSLT,它有排序日期的问题,您需要处理这些问题,如果您可以控制它,最简单的方法是使用可排序的日期格式,如 yyyymmdd

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

<xsl:template match="root">
<xsl:copy>
<xsl:apply-templates>
<xsl:sort data-type="number" select="date"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>

<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>

</xsl:stylesheet>

关于java - 在 Java 中对 XML 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2917133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com