2015-06-15 2 views
0

я ищу forwar для шаблона, который удаляет анод из XML в зависимости от значения узла чида, в основном я имею XML-как:удаление dependig родительского узла на дочерний узел с помощью XSLT

<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

я хочу шаблон XSLT, который удаляет другой узел событий вместе с дочерних узлами, в которых другое значение типа события OriginalCommitDateTime.

Стандартный метод, чтобы исключить определенные узлы, чтобы начать с идентичности преобразования шаблона, чтобы скопировать все узлы, как правило, затем добавить пустой шаблон, соответствующий узлы, которые необходимо исключить как исключение:

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> 
+0

спасибо за ценный ответ он работал для меня :) – user3364298

Смежные вопросы