Эта программа на Java использует тернарный if, чтобы отображать логические значения в выходные строки: ("*" для истины, пустая строка для ложный).
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, который сопоставляет true с '*' и false с '' (это работает):
<xsl:template match="change">
<xsl:variable name="flag" select="translate(substring(@flag,1,1),'tf','*')"/>
<xsl:value-of select="$flag"/>
</xsl:template>
Есть ли более краткая версия это?
a) Могу ли я автоматически получить значение логического истина | ложь непосредственно из строки «истина | ложь»? б) Существует ли конструкция (xpath?) для сопоставления логического значения true | false с '*', ''?