<ClinicalDocument>
<entry>
<substaceAdministration>
<effectiveTime></effectiveTime>
</substaceAdministration>
</entry>
<entry>
<substaceAdministration>
<effectiveTime></effectiveTime>
</substaceAdministration>
</entry>
<entry>
<substaceAdministration>
</substaceAdministration>
</entry>
</ClinicalDocument>
我必须断言每个条目/ substaceAdministration有效时间元素是否存在。
我尝试过这个表达式
<xsl:when test="count(ClinicalDocument/entry/substanceAdministration/effectiveTime)=1"/>
我正在寻找有关如何更改XPath表达式以满足此要求的建议。
答案 0 :(得分:1)
不是试图计算子元素的所有实例,也许你应该计算所有没有子元素的实例(对不起这个格式很抱歉;它很长):
<xsl:when
test="count(ClinicalDocument/entry/substanceAdministration[not(effectiveTime)])
= 0">
<!-- True when all substanceAdministration elements
have an effectiveTime child
-->
</xsl:when>
您还可以使用以下内容在for-each循环或模板中基于每种物质管理进行检查:
<!-- Assuming the current node is substanceAdministration -->
<xsl:if test="count(effectiveTime) = 1">
<!-- True when there is one and only one effectiveTime child -->
</xsl:if>
答案 1 :(得分:0)
您的陈述
test="count(ClinicalDocument/entry/substanceAdministration/effectiveTime)=1"
如果只有一个&lt; effectiveTime&gt;,将仅返回true。元件。
要了解您正在尝试使用更多xsl:模板来查看内容会更容易。你的上下文节点是什么?你是否想要处理每个&lt; entry&gt;有一个&lt; effectiveTime&gt;后裔?如果是这样,您可以使用模板:
<xsl:template match="entry[descendant::effectiveTime]">...</xsl:template>