我认为重复XSLT:如何在缺少特定内部子元素时跳过元素?中询问另一个问题时的所有代码会适得其反:
在所示示例中,有
result
元素填充有来自每个(有效)sample
的数据。
但是,如果根本没有有效样本,则不会创建任何内容。
有效样本的条件是[@label and value]
。
我正在寻找的是一个匹配标准,如果没有一个
<xsl:template match="perf_data/sample[@label and value]">
匹配;可以这么说。
例如,此类匹配可用于创建错误输出。
基本的 XSL 模式似乎是“如果存在,则所有匹配都执行...”,但我需要“如果不存在,则执行...一次”。
我想象解决方案与
<xsl:template match="[not(boolean(./sample/@label) or not(./sample/value))]">
类似,但这并没有按预期工作。
那么这可能吗?如果可能的话怎么办? 我花了很长时间寻找这样的解决方案,但失败了......
你可以这样做
<xsl:template match="perf_data[not(sample[value|@label])]">error message: not a single sample with a value or label</xsl:template>