這個Java程序使用三元的,如果,以布爾值映射到輸出字符串:(一個「*」爲真,假空字符串)。XSLT 1.0 Idiom for ternary如果?
public class ternary {
public static void main(String[] args) {
boolean flags[]={true,false,true};
for (boolean f : flags) {
System.out.println(f?"*":"");
}
}
}
所以輸出是*,[空],*。
我有一個輸入XML文檔,是這樣的:
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="change.xsl"?>
<root>
<change flag="true"/>
<change flag="false"/>
<change flag="true"/>
</root>
而且我有它映射真實的 '*' 和假爲 '' 下面的XSLT模板(它的工作原理):
<xsl:template match="change">
<xsl:variable name="flag" select="translate(substring(@flag,1,1),'tf','*')"/>
<xsl:value-of select="$flag"/>
</xsl:template>
這是否有更簡潔的版本?
一)我可以自動獲得布爾真值|直接從字符串「|假真」假? b)是否有一個(xpath?)結構將布爾值true | false映射到'*',''?
相似的問題:http://stackoverflow.com/questions/971067/is-there-an-if-then-else-statement-in-xpath – Vadzim 2014-09-11 07:08:49