XSL 测试两个条件
XSL TEST TWO CONDITIONS
我有以下xml。我想检查具有名为 'Key' 的元素且值为 'response' 的 FormField 节点是否为名为 'Value' 的元素设置了值。如果值元素为空,则 return false else return true:
<Form>
<FormField>
<Value>Jumper</Value>
<Key>item</Key>
<Label>Item</Label>
<Type>string</Type>
</FormField>
<FormField>
<Value>unsuccessful</Value>
<Key>response</Key>
<Label>Response</Label>
<Type>string</Type>
</FormField>
<FormField>
<Value/>
<Key>notes</Key>
<Label>Notes</Label>
<Type>string</Type>
</FormField>
<Form>
因此,例如以下将 return 为真
<FormField>
<Value>unsuccessful</Value>
<Key>response</Key>
<Label>Response</Label>
<Type>string</Type>
</FormField>
以下内容会 return false
<FormField>
<Value/>
<Key>response</Key>
<Label>Response</Label>
<Type>string</Type>
</FormField>
我怎样才能做到这一点,感谢任何帮助?
如果“有一个值”是指“包含一个文本节点”,那么请尝试:
<xsl:value-of select="exists(/Form/FormField[Key='response']/Value/text())"/>
或:
<xsl:value-of select="boolean(/Form/FormField[Key='response']/Value/text())"/>
我有以下xml。我想检查具有名为 'Key' 的元素且值为 'response' 的 FormField 节点是否为名为 'Value' 的元素设置了值。如果值元素为空,则 return false else return true:
<Form>
<FormField>
<Value>Jumper</Value>
<Key>item</Key>
<Label>Item</Label>
<Type>string</Type>
</FormField>
<FormField>
<Value>unsuccessful</Value>
<Key>response</Key>
<Label>Response</Label>
<Type>string</Type>
</FormField>
<FormField>
<Value/>
<Key>notes</Key>
<Label>Notes</Label>
<Type>string</Type>
</FormField>
<Form>
因此,例如以下将 return 为真
<FormField>
<Value>unsuccessful</Value>
<Key>response</Key>
<Label>Response</Label>
<Type>string</Type>
</FormField>
以下内容会 return false
<FormField>
<Value/>
<Key>response</Key>
<Label>Response</Label>
<Type>string</Type>
</FormField>
我怎样才能做到这一点,感谢任何帮助?
如果“有一个值”是指“包含一个文本节点”,那么请尝试:
<xsl:value-of select="exists(/Form/FormField[Key='response']/Value/text())"/>
或:
<xsl:value-of select="boolean(/Form/FormField[Key='response']/Value/text())"/>