请在下面详细了解。对不起,我是这个网站的新用户和XSLT
我正在尝试实现以下方案
我有一个XML,其中包含员工的以下内容
<Identifier>
<Operation>ADD</Operation>
<Position_ID>12345</Operation_ID>
<Issued_Date>2013-12-10</Issued_Date>
<Country>CN</Country>
</Identifier>
<Identifier>
<Operation>REMOVE</Operation>
<Position_ID>6734</Operation_ID>
<Issued_Date>2013-11-09</Issued_Date>
<Country>CN</Country>
</Identifier>
我试图根据最近的操作活动从标识符部分输出一个带有一个Operation元素的txt文件,假设REMOVE操作是最近的操作,我想输出为
E001,SAM,PAUL,REMOVE,6734,2013-11-09,CN
如果ADD操作是最近发生的活动,那么我需要输出如下
E001,SAM,PAUL,ADD,12345,2013-12-10,CN
我使用下面的XSLT代码来提取最新的,但由于我使用'或'运算符,它为我提供了以下输出,这是不正确的
<xsl:choose>
<xsl:when test="pi:Identifier[pi:Operation = 'ADD' or pi:Operation = 'REMOVE']">
<xsl:for-each select="pi:Identifier">
<Identifiers>
<Operation>
<xsl:value-of select="pi:Operation" />
</Operation>
<Position_ID><xsl:value-of select="pi:Position_ID </Position_ID
<Country><xsl:value-of select="pi:Country" /> </Country>
<Issued_Date>
<xsl:value-of select="pi:Issued_Date" />
</Issued_Date>
</Identifiers>
</xsl:for-each></xsl:when>
</choose>
E001,SAM,PAUL,ADD,12345,2013-12-10,CN,REMOVE,6734,2013-11-09,CN
如果有帮助,请告诉我。
答案 0 :(得分:0)
我正在尝试输出一个包含一个Operation元素的txt文件 基于近期操作活动
的标识符部分如下所示
假设您正在使用XSLT 1.0,实现此目的的方法是按日期对Identifier
元素进行排序,并从第一个(或从最后一个,取决于排序顺序)元素中获取数据。 / p>
例如,给定格式正确(!)输入:
<强> XML 强>
<root>
<Identifier>
<Operation>ADD</Operation>
<Position_ID>12345</Position_ID>
<Issued_Date>2013-12-10</Issued_Date>
<Country>CN</Country>
</Identifier>
<Identifier>
<Operation>REMOVE</Operation>
<Position_ID>6734</Position_ID>
<Issued_Date>2013-11-09</Issued_Date>
<Country>CN</Country>
</Identifier>
</root>
应用以下样式表:
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="utf-8"/>
<xsl:template match="/root">
<xsl:for-each select="Identifier">
<xsl:sort select="Issued_Date" data-type="text" order="descending"/>
<xsl:if test="position()=1">
<xsl:value-of select="Operation" />
<xsl:text>,</xsl:text>
<xsl:value-of select="Position_ID" />
<xsl:text>,</xsl:text>
<xsl:value-of select="Issued_Date" />
<xsl:text>,</xsl:text>
<xsl:value-of select="Country" />
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
结果:
ADD,12345,2013-12-10,CN