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())"/>