使用日期作为键,使用xslt重新排列节点

时间:2017-02-10 08:51:44

标签: xslt-1.0

是否可以通过将段的最后一个实例移动到消息的最后部分来重新排列xml段。请参阅以下示例:

原始结构:

public class Example
{

    [JsonProperty(PropertyName = "name")]
    public string Name { get; set; }

    [JsonProperty(PropertyName = "created")]
    public DateTime Created { get; set; }

    [JsonProperty(PropertyName = "updated")]
    public DateTime Updated { get; set; }

}

期望的输出:

<Header>
<Field>20170201</Field>
</Header>
<Header>
<Field>20170203</Field>
</Header>
<Line>
<Field>20170202</Field>
</Line>

在上面的示例中,第2个实例(或Header的最后一个实例)在Line节点之后移动。

1 个答案:

答案 0 :(得分:0)

感谢迈克尔的解决方案! 这确实很简单。再次感谢!

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

  <xsl:template match="MainNode">
    <xsl:copy>
      <xsl:apply-templates>
         <xsl:sort data-type="text" select="Field"/>
         </xsl:apply-templates>
    </xsl:copy>
  </xsl:template>

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

</xsl:stylesheet>