【发布时间】:2014-08-04 15:28:15
【问题描述】:
我有以下 XML 并想删除“TxnId”和“OrigTxnId”相同的两条记录。
<XML>
<Record><GroupId>10028</GroupId><SessionId>264-10028-1-515530-2</SessionId><TxnId>264-10028-1-515539-1</TxnId><Date>31-Jul-2014</Date><Time>11:22:40</Time><Account>1111111111</Account><NAD>5000</NAD></Record>
<Record><GroupId>10028</GroupId><SessionId>264-10028-1-515530-2</SessionId><TxnId>264-10028-1-515539-2</TxnId><Date>31-Jul-2014</Date><Time>11:22:40</Time><Account>2222222222</Account><NAD>6000</NAD></Record>
<Record><GroupId>10028</GroupId><SessionId>264-10028-1-515545-1</SessionId><TxnId>264-10028-1-515545-2</TxnId><Date>31-Jul-2014</Date><Time>11:22:55</Time><Account>3333333333</Account><NAD>1000</NAD></Record>
<Record><GroupId>10028</GroupId><TxnId>264-10028-1-515550-1</TxnId><Date>31-Jul-2014</Date><Time>11:23:32</Time><OrigTxnId>264-10028-1-515545-2</OrigTxnId><Account>3333333333</Account><NAD>1000</NAD></Record>
</XML>
这是我当前的 XSL,但它仍然提供原始记录。
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="Record">
<xsl:copy-of select="."/>
</xsl:template>
<xsl:template match="/XML">
<XML>
<xsl:apply-templates select="Record[not(TxnId=preceding-sibling::Record/OrigTxnId or OrigTxnId=preceding-sibling::Record/TxnId and Account=preceding-sibling::Record/Account)]"/>
</XML>
</xsl:template>
</xsl:transform>
【问题讨论】: