XSLT:选择一个节点,其子节点均不具有给定属性(即 Ø∃ (∄))

问题描述 投票:0回答:1

我认为重复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))]">
类似,但这并没有按预期工作。

那么这可能吗?如果可能的话怎么办? 我花了很长时间寻找这样的解决方案,但失败了......

xpath xslt match
1个回答
0
投票

你可以这样做

<xsl:template match="perf_data[not(sample[value|@label])]">error message: not a single sample with a value or label</xsl:template>
© www.soinside.com 2019 - 2024. All rights reserved.