请在下面找到更多详细信息。抱歉,我是这个网站和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>
我正在尝试根据“最近的操作”活动,从“标识符”部分输出带有一个“操作”元素的txt文件,如下所示。假设“删除”操作是最近的操作,我想输出为
E001,SAM,PAUL,REMOVE,6734,2013-11-09,CN
如果ADD操作是最近发生的活动,那么我需要输出如下
E001,SAM,PAUL,ADD,12345,2013-12-10,CN
我使用下面的XSLT代码来获取最新代码,但是由于我使用的是'or'运算符,因此它为我提供了以下错误的输出
<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
请让我知道这可不可以帮你。
我正在尝试根据“近期操作”活动,从“标识符”部分输出带有一个“操作”元素的txt文件,如下所示
假设您正在使用XSLT 1.0,实现此目的的方法是Identifier
按日期对元素进行排序,并从第一个(或从最后一个,取决于排序顺序)元素获取数据。
例如,给定格式正确的(!)输入:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句