以下是我的xml节点的示例。我想以最新的价格日期获取有效价格记录(状态代码=有效)。 我怎样才能做到这一点?
<price_record>
<price>18.99</price>
<price_date>20060724</price_date>
<price_status_code>Active</price_status_code>
<seq_num>1</seq_num>
</price_record>
<price_record>
<price>25.99</price>
<price_date>20080725</price_date>
<price_status_code>InActive</price_status_code>
<seq_num>2</seq_num>
</price_record>
<price_record>
<price>18.99</price>
<price_date>20060928</price_date>
<price_status_code>Active</price_status_code>
<seq_num>3</seq_num>
</price_record>
答案 0 :(得分:0)
您缺少根元素。下面的xslt使用“catalog”作为根元素,您可以更改它。输出是符合您标准的唯一记录。
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*" />
</xsl:copy>
</xsl:template>
<xsl:template match="catalog">
<xsl:for-each select="price_record[price_status_code = 'Active']" >
<xsl:sort select = "price_date" order="descending" />
<xsl:if test="position() = 1" >
<xsl:copy-of select = "." />
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>