测试某个类型的非null元素是否存在......某处

Jac*_*son 1 xml xslt

我有XML看起来像

<answers>
   <answer>
      <question-number>1</question-number>
      <value>3</value>
      <mean xsi:nil="1" />
    </answer>
   <answer>
      <question-number>2</question-number>
      <value>2</value>
      <mean>2.3</mean>
    </answer>
   <answer>
      <question-number>3</question-number>
      <value>3</value>
      <mean xsi:nil="1" />
    </answer>
....
</answers>
Run Code Online (Sandbox Code Playgroud)

我正在使用xsl:for-each格式化每个答案.如果存在平均值,我有平均值的图形表示.对于一些可能的答案列表,平均值将始终为空.

在页面的底部,我想要一个解释平均值的图形表示的图例.但我只想让它出现,如果我实际上显示了一个平均值.所以我想在关闭xsl:for-each之后能够做一个检查,说"做任何一个答案元素都有一个非空均值吗?".

真的不知道该怎么做.

Jas*_*per 5

任何答案元素都有一个非空均值?基于罗伯茨的例子

<xs:if test="(count(/answers/answer/mean[not(@xsi:nil)])>0"><xs:if>
Run Code Online (Sandbox Code Playgroud)

编辑:

<xs:if test="//answer/mean[not(text())]"><xs:if>
Run Code Online (Sandbox Code Playgroud)

最后编辑(回家前......)

<xs:if test="//answer/mean[attribute::xsi:nil]"><xs:if>
Run Code Online (Sandbox Code Playgroud)