我的输入XML是如下删除在XML空的子元素,使用XSLT
<OUTPUT-AREA><TIME-CD>A</TIME-CD>
<ID-G>
<Table-ID-T>
<AT-ID-T>YYYX</AT-ID-T>
<AT-ID-T/>
<AT-ID-T/>
</Table-ID-T>
</ID-G>
</OUTPUT-AREA>
我的输出XML shoule像,
<OUTPUT-AREA>
<TIME-CD>A</TIME-CD>
<ID-G>
<Table-ID-T>
<AT-ID-T>YYYX</AT-ID-T>
</Table-ID-T>
</ID-G>
</OUTPUT-AREA>
我想删除具有空值只有子元素。在上面的例子中,我想删除只有空值为<AT-ID-T>
的元素。
但不应删除Table-ID-T或ID-G。
这里的一个挑战是,假设如果所有的子元素都有空值,那么至少有一个子元素 保留在表或数组中。
例如,输入XML是
<OUTPUT-AREA>
<TIME-CD>A</TIME-CD>
<ID-G>
<Table-ID-T>
<AT-ID-T/>
<AT-ID-T/>
<AT-ID-T/>
</Table-ID-T>
</ID-G>
</OUTPUT-AREA>
然后输出应该是这样的,
<OUTPUT-AREA>
<TIME-CD>A</TIME-CD>
<ID-G>
<Table-ID-T>
<AT-ID-T/>
</Table-ID-T>
</ID-G>
</OUTPUT-AREA>
请提供满足要求的合适XSLT。
请找我试过XSLT下面,
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://ACORD.org/Standards/Life/2">
<xsl:output encoding="UTF-8" indent="no" omit-xml-declaration="no"/>
<xsl:template match="/">
<xsl:apply-templates select="*"/>
</xsl:template>
<xsl:template match="*">
<xsl:if test=".!=''">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:if>
</xsl:template>
在应用上面的XSLT,所有这一切都空值移除的元素。但是我只需要删除子元素。
等都不是代码写作服务。我们很乐意帮助您解决您遇到的任何问题,但您必须向我们展示您迄今为止的尝试。 – Matthew
@Mthethew对不起,我同意。我没有追加我在第一篇文章中尝试过的XSLT。我现在用我的XSLT更新了这篇文章。请查看 – Rajthilak