【发布时间】:2012-02-24 05:37:57
【问题描述】:
我有一个输出 XML,其中包含空元素和空元素,但具有属性。
我查看了一些较早的帖子,这些帖子帮助我解决了部分问题。
我使用了以下 XSLT 解决方案
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="@*|node()">
<xsl:if test=". != '' or ./@* != ''">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:if> </xsl:template> </xsl:stylesheet>
但问题是删除具有子元素的元素也具有类似属性的元素
<CurrencyList>
<Currency code="EURO"/>
<Currency code="USD"/>
</CurrencyList>
有人知道如何解决这个问题吗?
非常感谢
【问题讨论】:
-
解析 xml 并验证子元素和属性的每个元素不是您的选择吗?
-
@CatalinCiobanu 是的,它可能是
-
好吧,您可以将元素作为列表 List
获取并询问大小......但我们的同事 Joop Eggen 提出了一个更好(更好)的解决方案 -> 递归! -
你想对一个只包含另一个空元素的元素发生什么?应该同时删除还是只删除内部的?
-
@JörnHorstmann 如果只包含空元素,则应该同时删除它