2016-06-10 213 views
0

我有這個XML文件,如果ContentText元素的屬性languageCode =「EN」存在,我需要刪除ContentText元素的屬性languageCode =「FR」,否則保留法文文本。XSLT根據另一個節點的屬性刪除節點

當前XML:

<MaterialByElementsResponse_sync> 
    <Material> 
    <Detail> 
     <ContentText languageCode="FR">Inscription</ContentText> 
     <ContentText languageCode="EN">Subscription</ContentText> 
    </Detail> 
    </Material> 
</MaterialByElementsResponse_sync> 

所需的輸出:

<MaterialByElementsResponse_sync> 
    <Material> 
    <Detail> 
     <ContentText languageCode="EN">Subscription</ContentText> 
    </Detail> 
    </Material> 
</MaterialByElementsResponse_sync> 

我想這XSLT,但它始終刪除FR文本即使EN文本不存在:

<xsl:template match="node()|@*"> 

    <xsl:copy> 
     <xsl:apply-templates select="node()|@*"/> 
    </xsl:copy> 

    </xsl:template> 
    <xsl:template match="ContentText[@languageCode='FR']"/> 
</xsl:stylesheet> 

請記住,如果沒有英文文本,則不應刪除法文文本。

非常感謝。

+0

我說我現在的XSLT來主要話題。你可以看看。 謝謝。 –

回答

1

變化:

<xsl:template match="ContentText[@languageCode='FR']"/> 

到:

<xsl:template match="ContentText[@languageCode='FR'][../ContentText[@languageCode='EN']]"/> 
相關問題