我正在寻找一个模板,根据chid节点的值从xml中删除阳极,基本上我有一个xml,如:
<EventInfo>
<AssignmentEvent>
<CreateDateTime>2015-06-02T00:00:00+02:00</CreateDateTime>
</AssignmentEvent>
<EstimateEvent>
<CreateDateTime>2015-06-02T07:38:28.0000000Z</CreateDateTime>
<CommitDateTime>2015-06-04T14:29:38.0000000Z</CommitDateTime>
<UploadDateTime>2015-06-04T14:29:39.7651796Z</UploadDateTime>
</EstimateEvent>
<OtherEvent>
<OtherEventType>CalculatedDateTime</OtherEventType>
<OtherEventDateTime>2015-06-04T14:29:12.0000000Z</OtherEventDateTime>
</OtherEvent>
<OtherEvent>
<OtherEventType>RateDate</OtherEventType>
<OtherEventDateTime>2015-06-01T00:00:00.0000000Z</OtherEventDateTime>
</OtherEvent>
<OtherEvent>
<OtherEventType>OriginalCommitDateTime</OtherEventType>
<OtherEventDateTime>2015-06-02T07:42:16.000Z</OtherEventDateTime>
</OtherEvent>
</EventInfo>
我想要一个xslt模板,它删除其他事件节点以及其他事件类型值为OriginalCommitDateTime的子节点。
结果xml就像
<EventInfo>
<AssignmentEvent>
<CreateDateTime>2015-06-02T00:00:00+02:00</CreateDateTime>
</AssignmentEvent>
<EstimateEvent>
<CreateDateTime>2015-06-02T07:38:28.0000000Z</CreateDateTime>
<CommitDateTime>2015-06-04T14:29:38.0000000Z</CommitDateTime>
<UploadDateTime>2015-06-04T14:29:39.7651796Z</UploadDateTime>
</EstimateEvent>
<OtherEvent>
<OtherEventType>CalculatedDateTime</OtherEventType>
<OtherEventDateTime>2015-06-04T14:29:12.0000000Z</OtherEventDateTime>
</OtherEvent>
<OtherEvent>
<OtherEventType>RateDate</OtherEventType>
<OtherEventDateTime>2015-06-01T00:00:00.0000000Z</OtherEventDateTime>
</OtherEvent>
</EventInfo>
我是xslt的新手,任何帮助都会受到高度赞赏。
提前感谢。
答案 0 :(得分:0)
我想要一个xslt模板,它可以删除其他事件节点 子节点,其他事件类型值为OriginalCommitDateTime。
排除特定节点的标准方法是从 identity transform 模板开始,将所有节点复制为规则,然后添加一个与要排除的节点匹配的空模板作为例外: / p>
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="OtherEvent[OtherEventType='OriginalCommitDateTime']"/>
</xsl:stylesheet>