【发布时间】:2016-10-11 11:44:57
【问题描述】:
我有这个 XML 文件,我需要删除属性 languageCode="FR" 的 ContentText 元素,如果属性 languageCode="EN" 的 ContentText 元素存在,则保留法语文本。
当前 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>
请记住,如果没有英文文本,则不应删除法文文本。
非常感谢。
【问题讨论】:
-
我将当前的 XSLT 添加到主题中。你可以看看。谢谢。