的
java 8,但我认为这没有任何区别,因为我认为这是一个纯粹的XSL问题。
我有一些代码生成以下XML(例如):
<fizz>
<account>10016</account>
<accountId>2000001347</accountId>
<buzz class="null"/>
</fizz>
运行时buzz
元素的值有3种潜在方案:
- " null类Buzz" ->
<buzz class="null"/>
;或 - "非循环类嗡嗡声" ->
<buzz class="anythingOtherThanNull"/>
;或 - "普通嗡嗡声" ->
<buzz><complicatedXmlStructureInsideOfHere</buzz>
因此,在运行时,我们可能会有" null类嗡嗡声","非零类嗡嗡声"或"正常嗡嗡声"。我不想在" Null类Buzz"。的情况下转换buzz
元素(但是I do 想要转换非null类嗡嗡声和正常的嗡嗡声变化。)
这是我的XSL变换:
<xsl:stylesheet version="2.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="*"/>
<xsl:template match="/fizz">
<foobar>
<xsl:copy-of select="account"/>
<logId><xsl:value-of select="accountId"/></logId>
<xsl:if test="buzz">
<FLIMFLAM SEGMENT="1">
<HAPP>003</HAPP>
<SADD><xsl:value-of select="buzz"/></SADD>
</FLIMFLAM>
</xsl:if>
<foobar>
</xsl:template>
</xsl:stylesheet>
问题在于,这将变换为Null类Buzz变化并产生:
<foobar>
<account>10016</account>
<logId>2000001347</logId>
<FLIMFLAM SEGMENT="1">
<HAPP>003</HAPP>
<SADD/>
</FLIMFLAM>
</foobar>
,而对于Null类嗡嗡声,我希望buzz
完全忽略:
<foobar>
<account>10016</account>
<logId>2000001347</logId>
</foobar>
有什么想法我该怎么做?预先感谢!
,如注释中所述:
<xsl:if test="buzz[not(@class='null')]">
至少有一个不的buzz
元素将返回true,其中包含字符串"null"
。
class
属性